• Sábado 4 de Mayo de 2024, 20:04

Autor Tema:  Resultado en una solo Registro  (Leído 1201 veces)

Vortice

  • Miembro MUY activo
  • ***
  • Mensajes: 135
    • Ver Perfil
Resultado en una solo Registro
« en: Lunes 2 de Febrero de 2009, 17:27 »
0
Buen Dia a todos, tengo la siguiente consulta q hacerles.

Tengo la sgte. consulta

declare
@Rut nvarchar(12)
set @Rut = '81785200-9'
SELECT    cliente.rut, cliente.razon_social, cliente.nombre_fantasia,
      comunicacion.tipo as tipo1, comunicacion.numero as numero1, Direccion.direccion,
      Direccion.comuna, Direccion.ciudad
FROM   cliente INNER JOIN
      comunicacion ON cliente.codigo_cliente = comunicacion.codigo_cliente INNER JOIN
      Direccion ON comunicacion.codigo_direccion = Direccion.codigo_direccion
WHERE   cliente.rut = @Rut

la cual extrae valores de 3 tablas, me arroja dos registros en el cual todos los datos se repiten excepto tipo y fono q son diferentes.
Mi pregunta es como hago para q me entregue solo un registro con tipo1, Numero1 y tipo2, numero2

creo q se puede hacer con una subconsulta, pero nose como hacerlo.

agradecere cualquier ayuda.
Solo el Bueno muere joven...

softevolutions

  • Miembro activo
  • **
  • Mensajes: 84
  • Nacionalidad: es
    • Ver Perfil
    • http://www.softevolutions.es
Re: Resultado en una solo Registro
« Respuesta #1 en: Martes 17 de Febrero de 2009, 13:29 »
0
Si en la tabla comunicación siempre hay dos registros por cada cliente, con tipos diferentes, el siguiente código puede ayudarte:

declare
@Rut nvarchar(12)
set @Rut = '81785200-9'
SELECT cliente.rut, cliente.razon_social, cliente.nombre_fantasia,
comunicacion_min.tipo as tipo1, comunicacion_min.numero as numero1,
comunicacion_max.tipo as tipo2, comunicacion_max.numero as numero2,
Direccion.direccion,
Direccion.comuna, Direccion.ciudad
FROM cliente
INNER JOIN (select codigo_cliente, tipo, codigo_direccion, min(numero) numero from comunicacion GROUP BY codigo_cliente, tipo, codigo_direccion ) comunicacion_min
ON cliente.codigo_cliente = comunicacion_min.codigo_cliente
INNER JOIN (select codigo_cliente, tipo, codigo_direccion, max(numero) numero from comunicacion GROUP BY codigo_cliente, tipo, codigo_direccion) comunicacion_max
ON cliente.codigo_cliente = comunicacion_max.codigo_cliente
INNER JOIN Direccion ON comunicacion_min.codigo_direccion = Direccion.codigo_direccion
WHERE cliente.rut = @Rut
:: Lo que puedes hacer sólo lo limita tu propia imaginación ::
Soft Evolutions Technology - http://www.softevolutions.es