Oracle - Como juntas 3 select con group by y que presente una sola linea

   
Vista:

Como juntas 3 select con group by y que presente una sola linea

Publicado por Carmen Velasco (1 intervención) el 07/11/2013 17:58:06
Tengo varios select con group by y quiero que presente una sola línea con la información. Si lo hago por un solo cliente me sale, pero si agrego más ya no funciona.

SELECT b.CE_CODIGO "Cod", b.SC_NOMBRE "Cliente", b.SC_DIRECC "Dirección", b.SC_CONTAC "Contacto", b.SC_TELEF "Teléfono",
b.CE_CUPCRE "Cupo", ca_descri "Clase", b.VN_CODIGO "Vend", c.VN_NOMBRE "Vendedor", sc_ruc,MAX(a.MT_FECHA) "Max_Fec", SUM(a.MT_SALDO) "Saldo",
(SELECT SUM(a1.mt_saldo)
FROM marriott.cc_movim a1, marriott.fa_succli b1, marriott.fa_vended c1, marriott.fa_clacli d1
WHERE a1.CE_CODIGO = b1.CE_CODIGO
AND b1.VN_CODIGO = c1.VN_CODIGO
AND b1.ca_codigo = d1.ca_codigo
AND a1.TT_IOE='C' AND a1.tt_codigo NOT IN ( '13')
AND b1.VN_CODIGO BETWEEN '1000' AND '8999'
AND b1.vn_codigo NOT IN ('4002','9997')
AND b1.ce_codigo NOT IN ('4410')
AND b1.ce_codigo IN ( '1971')
GROUP BY b1.CE_CODIGO, b1.SC_NOMBRE, b1.SC_DIRECC, b1.SC_CONTAC, b1.SC_TELEF, b1.CE_CUPCRE, b1.VN_CODIGO, VN_NOMBRE, sc_ruc, ca_descri) "X Aplic",
(SELECT SUM(a2.mt_valor)
FROM marriott.cc_movim a2, marriott.fa_succli b2, marriott.fa_vended c2, marriott.fa_clacli d2
WHERE a2.CE_CODIGO = b2.CE_CODIGO
AND b2.VN_CODIGO = c2.VN_CODIGO
AND b2.ca_codigo = d2.ca_codigo
AND a2.TT_IOE='C' AND tt_codigo = '13'
AND b2.VN_CODIGO BETWEEN '1000' AND '8999'
AND b2.vn_codigo NOT IN ('4002','9997')
AND b2.ce_codigo NOT IN ('4410')
AND b2.ce_codigo IN ( '1971')
GROUP BY b2.CE_CODIGO, b2.SC_NOMBRE, b2.SC_DIRECC, b2.SC_CONTAC, b2.SC_TELEF, b2.CE_CUPCRE, b2.VN_CODIGO, VN_NOMBRE, sc_ruc, ca_descri) "Posf"
FROM marriott.cc_movim a, marriott.fa_succli b, marriott.fa_vended c, marriott.fa_clacli d
WHERE a.CE_CODIGO = b.CE_CODIGO
AND b.VN_CODIGO = c.VN_CODIGO
AND b.ca_codigo = d.ca_codigo
AND ((a.TT_IOE='D') AND (a.TT_CODIGO='1')
AND (b.VN_CODIGO BETWEEN '1000' AND '8999'))
AND b.vn_codigo NOT IN ('4002','9997')
AND b.ce_codigo NOT IN ('4410')
AND b.ce_codigo IN ( '1971')
GROUP BY b.CE_CODIGO, b.SC_NOMBRE, b.SC_DIRECC, b.SC_CONTAC, b.SC_TELEF, b.CE_CUPCRE, b.VN_CODIGO, VN_NOMBRE, sc_ruc, ca_descri

Aquí esta por uno si le comento la línea para que salgan todos ya me sale error
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Como juntas 3 select con group by y que presente una sola linea

Publicado por luis pablo luis2409@gmail.com (232 intervenciones) el 08/11/2013 15:45:05
Hola, una consulta...
por qué haces un group by en tu subconsulta? no se supone que debe retornar un solo dato en funcion a lo que retorne el select padre ??

Saludos


Luis Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar