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

Respuesta
 
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
  #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
  #3  
Antiguo 01-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Bienvenido al foro, recuerda leer la guía de estilo

PD: Don't repeat yourself
Responder Con Cita
  #4  
Antiguo 01-12-2015
Malixnox Malixnox is offline
Miembro
NULL
 
Registrado: nov 2015
Posts: 15
Poder: 0
Malixnox Va por buen camino
Disculpa, la estoy leyendo en este momento ya que no puedo seguir trabajando si no resuelvo esto, pero ¿Cómo edito el nombre de un tema?, no me sale la opción, ya vi en las primeras líneas que "ayuda" no va en la guía de estilo que me presentas y seguro iré viendo mas detalles y por lo mismo no eliminé el tema anterior, no consigo la opción a la vista, disculpe las molestias causadas.
Responder Con Cita
  #5  
Antiguo 01-12-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No te preocupes, eres novato aquí, tan solo tenlo en cuenta para los siguientes mensajes

En cuanto a tu pregunta, no queda muy clara.
Responder Con Cita
  #6  
Antiguo 01-12-2015
Malixnox Malixnox is offline
Miembro
NULL
 
Registrado: nov 2015
Posts: 15
Poder: 0
Malixnox Va por buen camino
Trataré de explicarme mejor.

El programa debe mostrar insumos de químicos real por mes, es decir lista de todos los químicos y cuánto se usaron por mes.

Para ello hay condiciones que son los WHERE y los WHEN en el CASE, los químicos son catalogados como Insumos y todos los insumos son TTYPE = 'I', para diferenciar químicos de los demás insumos usados en el mes se usa el identificador TPROD que podría decirse que es el Id, los TPROD que comiencen por Q son los químicos, es decir así se diferencian.

La producción Real es la suma de todas las R independientemente del código, pero igual todas comienzan por S en TPROD, si es que esa información es útil.

Las cantidades de cualquier isumo, producción, rechazo, desperdicio, etc se cargan en T1, T2 y T3 que sería lo que consumió y produjo cada turno, es decir para sacar cuanto se consumió y produjo en un día se suman los 3 turnos.

Consumo de insumos real es la división entre el químico específicos y la producción real del mes es decir:

SUM de Q1(La suma de T1+T2+T3 con el mismo código)/(Producción real del mes (T1+T2+T3 siempre que sea R y el mes sea el mismo))/1000 El dividir entre 1000 es para pasar la unidad de Kilogramos a Toneladas.

Mi lógica en un principio fue el código expuesto arriba, pero la división tiene como problema que divide el TPROD mas cercano o el que se va encontrando o ni remota idea de qué divide porque el SUM de todas las R del mes no es porque los comprobé en consultas separadas cuanto deberían dar.

Mi problema es ese, que la división no me está dando como debería y mi solución (Mental) es hacerle un SUM al SUM de R porque anda sumando cada TPROD con R y dividen entre sí y un desastre de división, quiero es sumar todas y cada una de las R para dar un valor único que se repetirá en ese mes nada mas y para el siguiente lo mismo pero del mes siguiente y así sucesivamente.

No sé si me termino de explicar.

La tabla debería mostrar algo como esto:

Código:
TPROD|Enero                                                                           |Febrero
Q1   |SUM(T1+T2+T3 del Q1 de 201501%)/(SUM(T1+T2+T3 de las R totales de 201501%)/1000)|SUM(T1+T2+T3 del Q1 de 201502%)/(SUM(T1+T2+T3 de las R totales de 201502%)/1000)
Q2   |SUM(T1+T2+T3 del Q2 de 201501%)/(SUM(T1+T2+T3 de las R totales de 201501%)/1000)|SUM(T1+T2+T3 del Q2 de 201502%)/(SUM(T1+T2+T3 de las R totales de 201502%)/1000)
Q3   |SUM(T1+T2+T3 del Q3 de 201501%)/(SUM(T1+T2+T3 de las R totales de 201501%)/1000)|SUM(T1+T2+T3 del Q3 de 201502%)/(SUM(T1+T2+T3 de las R totales de 201502%)/1000)
Es decir mi consulta de las I de código Q% es específica y la de las R es solo una sumatoria que no importa el código solo que sea R, de la misma planta y del mismo mes, pero sin separarse por código, un total de R.

Gracias por leer.
Responder Con Cita
  #7  
Antiguo 02-12-2015
Malixnox Malixnox is offline
Miembro
NULL
 
Registrado: nov 2015
Posts: 15
Poder: 0
Malixnox Va por buen camino
Aja, sorry la tardanza, no solo ando de programador acá y recursos humanos ida y vuelva es media hora.

Visual Studios dice SQL Server 2012

La definición de la tabla es:

Código SQL [-]
TTYPE Varchar(2)
TTDTE Numeric(18,0)
TPROD Varchar (35)
THWRKC Numeric (28,0)
T1,T2 y T3 Numeric (38,6)

Explicación de cada una:

TTYPE es la que diferencia el tipo de producto definido por una o dos letras, I es para insumos, R para producción, DV es para rechazo y mas valores que tiene.
TTDTE es la fecha que es un número expresado en yyyyMMdd
TPROD sería quizás el Id, es un código que identifica qué es lo que se está produciendo, consumiendo, rechazando, etc - Tiene una simbología de que los códigos que comienzan por Q son para químicos, los que comienzan por S son producción y demás códigos que tiene.
THWRKC es el identificador de planta, en este caso es molinos y los molinos van del 431101 al 431106 respectivamente, hay otros códigos que son para planta destintado o cualquier otra, pero molinos son los que estoy usando.
T1, T2 y T3 son lo que consumió, gastó y rechazó cada turno, la suma de los 3 turnos sería el total del día.

El programa debería mostrar una columna con los TPROD de Químicos que son los que comienzan por Q, luego de eso las columnas con los 12 meses del año y una mas con el total del año, los resultados serían la suma de los T1, T2 y T3 para tener los resultados diarios pero acumulados para tener los totales del mes, ese resultado dividido entre el total de R sin ningún tipo de diferenciación de código, todas las R sumadas es la producción real del periodo, este caso todas las R del mes 01 serían la producción de enero, las R se dividen entre 1000 para dar la unidad y eso para todos los meses y códigos de los químicos.

Visto en fórmula sería

Cita:
Insumo de químicos = SUM(T1+T2+T3 de Código_químico1 del mes)/(Sum(R del mes)/1000) = Número kg/Ton
Espero haberme expresado un poco mas claro.

Última edición por Casimiro Notevi fecha: 02-12-2015 a las 20:15:47.
Responder Con Cita
  #8  
Antiguo 02-12-2015
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Bueno, no puedes correr si no sabes andar...

Vamos por partes.

Vamos a sacar los insumos de los productos químicos del molino 431101.
TTYPE = 'I'
THWRKC= 431101
TPROD like 'Q%'
Además vamos a ver el consumo por cada día.

Código SQL [-]
Select 
TPROD, TTDTE,
T1, T2, T3
FROM BPCS_TRANS_ITH_2
WHERE
TTYPE = 'I'
AND THWRKC= 431101
AND TPROD like 'Q%'
Ahora sumando los insumos de los tres turnos
Código SQL [-]
Select 
TPROD, TTDTE,
T1, T2, T3, T1+T2+T3 as TOTAL_DIA
FROM BPCS_TRANS_ITH_2
WHERE
TTYPE = 'I'
AND THWRKC= 431101
AND TPROD like 'Q%'

Juega con estas consultas, cambiando los insumos por la producción TTYPE = 'R'. Haz variaciones, cambiando el molino, etc.


Cuando lo domines, iremos a calcular esos datos totalizados por día o por mes. De varios molinos, por ejemplo.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #9  
Antiguo 08-12-2015
Malixnox Malixnox is offline
Miembro
NULL
 
Registrado: nov 2015
Posts: 15
Poder: 0
Malixnox Va por buen camino
No sabía que habían respondido, el correo no me avisó y como me tocó prestar servicio en las elecciones de mi país tampoco fui al trabajo unos días, disculpa, voy a probar qué logro con eso, gracias.

Creí que ya se habían rendido conmigo y yo bueh, quien sea se cansa de tanto noob.
Responder Con Cita
  #10  
Antiguo 08-12-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Malixnox Ver Mensaje
Creí que ya se habían rendido conmigo y yo bueh, quien sea se cansa de tanto noob.
Aquí solamente nos cansamos de los que quieren aprovecharse y no tratan de aprender. Nunca nos cansamos de los novatos que quieren aprender. Todos hemos sido novatos y seguimos siéndolo en muchas cosas.
Responder Con Cita
  #11  
Antiguo 08-12-2015
Malixnox Malixnox is offline
Miembro
NULL
 
Registrado: nov 2015
Posts: 15
Poder: 0
Malixnox Va por buen camino
Ya resolví al parecer, les dejo el código por si a alguien le es de ayuda, un amigo me explicó por teléfono que existen sub select y tal, lo busqué y me funcionaron.

Código SQL [-]
SELECT        TPROD, 
SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '01%' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)
/(SELECT SUM(T1+T2+T3)/1000 
FROM            BPCS_TRANS_ITH_2
WHERE (TTDTE LIKE '%' + @TTDTE + '01%') AND (THWRKC LIKE '431101') AND TTYPE = 'R')  AS Enero, 

SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '02%' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)
/(SELECT SUM(T1+T2+T3)/1000 
FROM            BPCS_TRANS_ITH_2
WHERE (TTDTE LIKE '%' + @TTDTE + '02%') AND (THWRKC LIKE '431101') AND TTYPE = 'R')  AS Febrero, 

SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '03%' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)
/(SELECT SUM(T1+T2+T3)/1000 
FROM            BPCS_TRANS_ITH_2
WHERE (TTDTE LIKE '%' + @TTDTE + '03%') AND (THWRKC LIKE '431101') AND TTYPE = 'R')  AS Marzo, 

SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '04%' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)
/(SELECT SUM(T1+T2+T3)/1000 
FROM            BPCS_TRANS_ITH_2
WHERE (TTDTE LIKE '%' + @TTDTE + '04%') AND (THWRKC LIKE '431101') AND TTYPE = 'R')  AS Abril, 

SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '05%' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)
/(SELECT SUM(T1+T2+T3)/1000 
FROM            BPCS_TRANS_ITH_2
WHERE (TTDTE LIKE '%' + @TTDTE + '05%') AND (THWRKC LIKE '431101') AND TTYPE = 'R')  AS Mayo,

SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '06%' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)
/(SELECT SUM(T1+T2+T3)/1000 
FROM            BPCS_TRANS_ITH_2
WHERE (TTDTE LIKE '%' + @TTDTE + '06%') AND (THWRKC LIKE '431101') AND TTYPE = 'R')  AS Junio, 

SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '07%' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)
/(SELECT SUM(T1+T2+T3)/1000 
FROM            BPCS_TRANS_ITH_2
WHERE (TTDTE LIKE '%' + @TTDTE + '07%') AND (THWRKC LIKE '431101') AND TTYPE = 'R')  AS Julio, 

SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '08%' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)
/(SELECT SUM(T1+T2+T3)/1000 
FROM            BPCS_TRANS_ITH_2
WHERE (TTDTE LIKE '%' + @TTDTE + '08%') AND (THWRKC LIKE '431101') AND TTYPE = 'R')  AS Agosto, 

SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '09%' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)
/(SELECT SUM(T1+T2+T3)/1000 
FROM            BPCS_TRANS_ITH_2
WHERE (TTDTE LIKE '%' + @TTDTE + '09%') AND (THWRKC LIKE '431101') AND TTYPE = 'R')  AS Septiembre,

SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '10%' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)
/(SELECT SUM(T1+T2+T3)/1000 
FROM            BPCS_TRANS_ITH_2
WHERE (TTDTE LIKE '%' + @TTDTE + '10%') AND (THWRKC LIKE '431101') AND TTYPE = 'R')  AS Octubre,

SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '11%' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)
/(SELECT SUM(T1+T2+T3)/1000 
FROM            BPCS_TRANS_ITH_2
WHERE (TTDTE LIKE '%' + @TTDTE + '11%') AND (THWRKC LIKE '431101') AND TTYPE = 'R')  AS Noviembre,

SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '12%' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)
/(SELECT SUM(T1+T2+T3)/1000 
FROM            BPCS_TRANS_ITH_2
WHERE (TTDTE LIKE '%' + @TTDTE + '12%') AND (THWRKC LIKE '431101') AND TTYPE = 'R')  AS Diciembre,

SUM(CASE WHEN TTDTE LIKE '%' + @TTDTE + '%' AND TPROD LIKE 'Q%' THEN (T1 + T2 + T3) * - 1 ELSE 0 END)
/(SELECT SUM(T1+T2+T3)/1000 
FROM            BPCS_TRANS_ITH_2
WHERE (TTDTE LIKE '%' + @TTDTE + '%') AND (THWRKC LIKE '431101') AND TTYPE = 'R')  AS Total_Anual
FROM            BPCS_TRANS_ITH_2
WHERE        (TTDTE LIKE '%' + @TTDTE + '%') AND (THWRKC LIKE '431101') AND TPROD LIKE 'Q%' AND TTYPE = 'I'
GROUP BY TPROD
ORDER BY TPROD


SELECT SUM(T1+T2+T3) 
FROM            BPCS_TRANS_ITH_2
WHERE (TTDTE LIKE '%' + @TTDTE + '01%') AND (THWRKC LIKE '431101') AND TTYPE = 'R'
Responder Con Cita
Respuesta



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 21:18:32.


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