SoloCodigo
Bases de Datos => SQL Server => Mensaje iniciado por: Vortice en Lunes 2 de Febrero de 2009, 17:27
-
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.
-
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