Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 01-12-2015
Malixnox Malixnox is offline
Miembro
NULL
 
Registrado: nov 2015
Posts: 15
Poder: 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
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda por favor para armar consulta en firebird Velia Firebird e Interbase 4 21-08-2007 17:37:47
Ayuda por favor lazarous PHP 2 18-07-2005 19:06:58
Por Favor verifiquen esta consulta pues no veo el error. nefy SQL 6 05-06-2004 17:59:06
AYUDA, por favor! Waldo Conexión con bases de datos 5 01-11-2003 17:49:02
ayuda por favor haffo Varios 2 14-10-2003 16:08:45


La franja horaria es GMT +2. Ahora son las 15:41:53.


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