Ver Mensaje Individual
  #2  
Antiguo 01-12-2015
Malixnox Malixnox is offline
Miembro
NULL
 
Registrado: nov 2015
Posts: 15
Reputación: 0
Malixnox Va por buen camino
Ayuda con una consulta (Por favor) ~

Publiqué un tema antes pero me doy cuenta que era pedir mucho, era pasar a código algo, esta vez voy con el mismo problema pero necesto es ayuda con la consulta porque ya llevo mucho tiempo perdido en esto, copy pasteo esto:

"Soy actualmente pasante en una empresa, la empresa me ha estado poniendo a hacer cosas y yo las he hecho pero la última que me pidieron mis conocimientos noobs se quedaron cortos, voy a explicar primero qué debo hacer.

El programa es una aplicación web que muestra el consumo de químicos mensual por una planta en específico (Molinos), mostrando el código del químico es decir una tabla como:

Código de químicos|Enero|Febrero|Marzo|Abril|Mayo|Junio|etc...|Total_Anual
Código 1 | 413 | 34344 | num | num | num | sum de num
Código 2 ...

Así sucesivamente, la base de datos es de la siguiente manera:

Código de químico: TPROD.
Fechas: yyyyMMdd - Año, med y día, es decir para el primero de enero del 2015 sería 20150101
TWRKC: Código de molinos.
Cantidades: T1, T2, T3 (Se dividen por turnos) o sea el total es SUM(T1+T2+T3)
TTYPE: El tipo de producto, para diferenciar, I es para Insumos y R para producción.

Las cantidades se sacan con la siguiente fórmula:"

WHERE TTYPE = AND WHERE TPROD LIKE 'Q%' SUM(T1+T2+T3)/(WHERE = 'R' (SUM(T1+T2+T3))/1000), mi consulta en la BD es exactamente esta:

Este es mi código hasta ahora.

Código SQL [-]
SELECT        TPROD, 
SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '01%' AND TTYPE = 'I' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)/SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '01%' AND TTYPE = 'R' THEN (T1 + T2 + T3) ELSE 1 END) AS Enero, 
SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '02%' AND TTYPE = 'I' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)/SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '02%' AND TTYPE = 'R' THEN (T1 + T2 + T3) ELSE 1 END) AS Febrero, 
SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '03%' AND TTYPE = 'I' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)/SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '03%' AND TTYPE = 'R' THEN (T1 + T2 + T3) ELSE 1 END) AS Marzo, 
SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '04%' AND TTYPE = 'I' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)/SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '04%' AND TTYPE = 'R' THEN (T1 + T2 + T3) ELSE 1 END) AS Abril, 
SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '05%' AND TTYPE = 'I' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)/SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '05%' AND TTYPE = 'R' THEN (T1 + T2 + T3) ELSE 1 END) AS Mayo,
SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '06%' AND TTYPE = 'I' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)/SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '06%' AND TTYPE = 'R' THEN (T1 + T2 + T3) ELSE 1 END) AS Junio, 
SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '07%' AND TTYPE = 'I' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)/SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '07%' AND TTYPE = 'R' THEN (T1 + T2 + T3) ELSE 1 END) AS Julio, 
SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '08%' AND TTYPE = 'I' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)/SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '08%' AND TTYPE = 'R' THEN (T1 + T2 + T3) ELSE 1 END) AS Agosto, 
SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '09%' AND TTYPE = 'I' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)/SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '09%' AND TTYPE = 'R' THEN (T1 + T2 + T3) ELSE 1 END) AS Septiembre,
SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '10%' AND TTYPE = 'I' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)/SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '10%' AND TTYPE = 'R' THEN (T1 + T2 + T3) ELSE 1 END) AS Octubre,
SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '11%' AND TTYPE = 'I' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)/SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '11%' AND TTYPE = 'R' THEN (T1 + T2 + T3) ELSE 1 END) AS Noviembre,
SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '12%' AND TTYPE = 'I' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)/SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '12%' AND TTYPE = 'R' THEN (T1 + T2 + T3) ELSE 1 END) AS Diciembre,
SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '%' AND TTYPE = 'I' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)/SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '%' AND TTYPE = 'R' THEN (T1 + T2 + T3) ELSE 1 END) AS Total_Anual
FROM            BPCS_TRANS_ITH_2
WHERE        (TTDTE LIKE '%' + @TTDTE + '%') AND (THWRKC LIKE '431101') AND TPROD LIKE 'Q%'
GROUP BY TPROD
ORDER BY TPROD

El problema que me queda es que divide mal, divide entre los TPROD que se consigue y yo quiero es qeu divida únicamente por el TPROD final de cada mes o sea SUM(T1+T2+T3)/1000 del total del mes que serían los (TTDTE LIKE '%' + @TTDTE + '%') para las fechas, realmente no sé cómo hacerla y si entiendo por qué me da mal, porque no sé, necesito un SUM del SUM que no logro hacer, o sea necesito un SUM del SUM de las R, si alguien sabe cómo pues gracias, sino bueno solo dejé otro tema mientras invento un UNNION INNER JOIN DISTINCT = Lo que quiero (Ojalá fuese tan fácil).
Responder Con Cita