[ Foro de SQL (y MySQL) ]

Agrupamiento

23-Oct-2018 15:33
Invitado (Fabian)
1 Respuestas

Buenas tardes, tengo un problema con el agrupamiento, paso a explicar, en este select, hasta el ultimo UNION tengo calculo de partidas multiplicando INDIVIDUALMENTE POR 62.76 como se ve, luego se resultado tengo que volver a multiplicarlo INDIVIDUALMENTE por la tabla del ultimo UNION esta info_tabla_efectivo_minimo_tasas donde existen las partidas con un campo de tasa % para para cada una de ellas, por eso en el segundo select hago tt1 * tt2 tt2 es el ultimo union, ahi es donde me falla, por que hasta antes de eso multiplica individualmente cada partida y los valores son correctos, pero luego la suma de esos valores la multiplica contra la suma de ambos porcentajes, en lugar de multiplicarlo individualmente y por ultimo sumar todos los importes, me falla el ultimo agrupamiento, podran darme una mano?gracias


select sum(tt3) as resultado from (
select codigo_partida ,tt1 , tt2 , (tt1 * tt2 ) as Tt3 from (
select codigo_partida ,sum(tot1 ) as tt1 , sum(tot2) as tt2 from (
select codigo_partida, tot1 , 0 as Tot2 from ( 
select codigo_partida, sum(imp1) as tot1 from ( 
select codigo_partida , (importe * 62.76 ) as imp1 
from efeabr 
where codigo_partida in("101401","101402") and 
codigo_moneda_especie=1 AND categoria=1 
UNION
select codigo_partida , importe as imp1
from efeabr where codigo_partida in("101401","101402") and 
codigo_moneda_especie=1 AND categoria=1 and not
codigo_partida in (select codigo_partida from marzo )
) as X
GROUP BY codigo_partida
) AS X1
UNION
SELECT codigo_partida, 0 as Tot1 , tasa as Tot2
from info_tabla_efectivo_minimo_tasas 
where codigo_partida in("101401","101402" ) and baja_tasa=204007
) ) AS X2 GROUP BY codigo_partida

) AS X4 GROUP BY codigo_partida


 


28-Oct-2018 00:07
Nacho Cabanes (+84)

Resulta difícil de seguir, con tanto anidamiento y nombres de variables tan cortos, y más sin poder hacer pruebas con las tablas.

Si usas MySQL y tienes PhpMyAdmin, prueba a recrear las consultas de "dentro a fuera" (porque hay muchas encadenadas), para ver en qué momento PhpMyAdmin te da algún mensaje de error, de variable inexistente, ambigua o lo que esté provocado el problema.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)