Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   select con 1 subconsulta (https://www.clubdelphi.com/foros/showthread.php?t=93449)

IVAND 01-10-2018 21:05:48

select con 1 subconsulta
 
estimados amigos , como siempre gracias por su tiempo

Código SQL [-]
select v.cod_transaccion, sum(d.cantidad) Tcompra,
(select sum(h.cantidad) from his_mov_sucursales h where h.key_producto_b=d.key_producto_b)
 from cab_mov c , det_mov d,vi_configuracion v,vi_producto_bodega vv
where c.key_cab_mov=d.key_cab_mov
and c.key_configuracion=v.key_configuracion
and v.cod_transaccion='ING'
and d.key_producto_b=vv.key_producto_b
and c.key_prov=8
group by 1

como podría hacer esa consulta , miren que primero hago un sum y después de ese dato otro select pero me da error la consulta
de

Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).

Gracias por su amable atencion

oscarac 01-10-2018 22:34:43

No soy un experto en subconsultas, pero, segun veo en la subconsulta solo estas sumando la cantidad, y luego pretendes relacionar el vv.key_producto_b cuando no lo enumeras en la subconsulta

IVAND 02-10-2018 00:05:02

El problema es el group by , si usas este query funciona bien
Código SQL [-]
select vv.key_producto_b, (d.cantidad) Tcompra,
(select  sum(h.cantidad) from his_mov_sucursales h where h.key_producto_b=d.key_producto_b)
 from cab_mov c , det_mov d,vi_configuracion v,vi_producto_bodega vv
where c.key_cab_mov=d.key_cab_mov
and c.key_configuracion=v.key_configuracion
and v.cod_transaccion='ING'
and d.key_producto_b=vv.key_producto_b
and c.key_prov=8

Pero no es lo que necesitamos ya solucione el problema con un SP pero me gustaria saber como deberia quedar este select de la forma planteada para que funciones bien

gatosoft 03-10-2018 17:20:52

Cita:

Empezado por IVAND (Mensaje 528733)
estimados amigos , como siempre gracias por su tiempo

Código SQL [-]
select v.cod_transaccion, sum(d.cantidad) Tcompra,
(select sum(h.cantidad) from his_mov_sucursales h where h.key_producto_b=d.key_producto_b)
 from cab_mov c , det_mov d,vi_configuracion v,vi_producto_bodega vv
where c.key_cab_mov=d.key_cab_mov
and c.key_configuracion=v.key_configuracion
and v.cod_transaccion='ING'
and d.key_producto_b=vv.key_producto_b
and c.key_prov=8
group by 1

como podría hacer esa consulta , miren que primero hago un sum y después de ese dato otro select pero me da error la consulta
de

Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).

Gracias por su amable atencion

¿en que motor trabajas?

¿has probado modificar el

Código SQL [-]
group by 1

por

Código SQL [-]
group by v.cod_transaccion

?


La franja horaria es GMT +2. Ahora son las 04:30:44.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi