Club Delphi  
    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
  #1  
Antiguo 30-11-2015
Malixnox Malixnox is offline
Miembro
NULL
 
Registrado: nov 2015
Posts: 15
Poder: 0
Malixnox Va por buen camino
Ayuda (Por favor) con un Grid View C# y SQL

Muy Buenas a las almas que se compadezcan de mi, a los que no pues solo buenas.

Tengo el siguiente problema, tengo varios en realidad pero el principal es el siguiente:

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 = I SUM(T1+T2+T3)/(WHERE = 'R' (SUM(T1+T2+T3))/1000), mi consulta en la BD es exactamente esta:

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)/1000) 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)/1000) 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)/1000) 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)/1000) 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)/1000) 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)/1000) 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)/1000) 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)/1000) 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)/1000) 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)/1000) 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)/1000) 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)/1000) 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)/1000) ELSE 1 END) AS Total_Anual
FROM            BPCS_TRANS_ITH_2
WHERE        (TTDTE LIKE '%' + @TTDTE + '%') AND (THWRKC LIKE '431105')
GROUP BY TPROD
ORDER BY TPROD

Pero tengo me trae los siguientes problemas:

Me muestra todos los TPROD y solo quiero que me muestre los TPROD que comiencen por Q, se me ocurre hacerlo con un if pero no manejo Gridview por eso pido ayuda, las cantidades resultantes no me están cuadrando pero necesito una revisión para ver si es verdad que no me dan bien.

Ah, ¿Por qué no hice una tabla toda genial con una cantidad exagerada de labels que es mas trabajosa pero me gusta mas?, porque me obligaron ya que los químicos podrían aumentar es decir puede que el año que viene agreguen unos 6 químicos mas, tendría que hacerlo a mano y tienen que avisarme ellos, mi jefe me dijo que lo quería auto generado (El no programa, solo me dijo que fuese auto generado), por consiguiente terminé usando un Gridview, que no los sé usar así que he usado mis pocos conocimientos de SQL, para ver si lo hacía desde el ayudante, ya me rendí, pues el ayudante no ayuda, solo me comprueba las consultas, haha.

Ah, si, en el trabajo tengo Internet censurado por ello no ando viendo vídeos en YouTube "GridViews for dummies", de hecho este foro no está censurado by el Barracuda filter ese que tenemos acá, por eso ando posteando acá, sino es revisar desde el cel si respondieron y copiar el código a mano (Ya lo he hecho antes cuando me quedo trancado, es un proceso lento pero bueh) ah y tampoco tengo acceso a los puertos USB, están bloqueados... Estoy programando en una granja haha, o con las manos atadas mas bien, sin Internet ni USB, wao... Ya 2 meses acá, me acostumbré.

Pero llevo como 2 semanas trancado y ya de verdad necesito ayuda y por eso posteo, si alguien se apiada de mi alma, estoy solo en un cuarto, nadie para ayudarme, sin Internet ni USB, no me dejen morir, haha, realmente lo que pido es que si alguien me puede hacer ese mismo código pero en la parte de código C# del Gridview porque yo personalmente no tengo idea de como hacerlo, el código está vacio y todo es hecho desde el ayudante, lo único que tiene el Gridview es:

<SelectParameters>
<asp:ControlParameter ControlID="label0" Name="TTDTE" PropertyName="Text"
DefaultValue="2015" />
</SelectParameters>

Que es un mugre label que agarra el año actual y ya.

#HALPH

Gracias por su atención así no puedan ayudarme, al menos me leyeron llorando (No literalmente claro) por acá.
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 01:02:30.


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
Copyright 1996-2007 Club Delphi