![]() |
sumar columnas en un dbgrid y mostrar mas campos
buenas a todos los que lean y puedan darme una mano en esto:
Tengo las sgtes tablas: Código SQL [-] CREATE TABLE ORDENES ( ORD_ID D_ORD_ID, ORD_COD VARCHAR(5), ORD_FECHA DATE, MAT_ID D_MAT_ID) CREATE TABLE MATERIALES ( MAT_ID D_MAT_ID, MAT_COD VARCHAR(5), MAT_NOM VARCHAR(15)) CREATE TABLE PARTES ( PRT_ID D_PRT_ID, PRT_COD VARCHAR(5), PRT_INGRESO_1 DECIMAL(10,2), PRT_INGRESO_2 DECIMAL(10,2), PRT_SALIDA DECIMAL(10,2)) CREATE TABLE PRT_ORD ( PRT_ID D_PRT_ID, ORD_ID D_ORD_ID); Como se daran cuentas una ORDEN puede tener varias PARTES anexadas asi como en un PARTE puede tener varias ORDENES (relacion muchos a muchos). Mi problema es que quisiera mostrar en un dbgrid esto: ORD_COD, MAT_COD, MAT_NOM, SUM(PRT_INGRESO_1), SUM(PRT_INGRESO_2), SUM(PRT_SALIDA) Es decir arrojar en un dbgrid el codigo de la orden y material, nombre del material y luego la suma de PRT_INGRESO_1, PRT_INGRESO_2, PRT_SALIDA datos que se encuentran almacenados en Partes y anexados en la tabla PRT_ORD o dicho de otro modo ya q la orden tiene varias partes sumar los ingresos 1 y 2 y las salidas de estas partes y mostrarlas juntos con los datos de la orden (codigo orden, codigo material, ...) hay alguna forma de meter eso en el Select de un TpFIBDataSet?, algo como: Código SQL [-] SELECT ORD.ORD_ID, ORD.ORD_COD, MAT.MAT_COD, MAT.MAT_NOM, SUM(PRT.PRT_ING_1) INGRESO_1, SUM(PRT.PRT_ING_2) INGRESO_2, SUM(PRT.PRT_SAL) SALIDA FROM ORDENES ORD, MATERIALES MAT, PARTES PRT, PRT_ORD PO WHERE PRT.PRT_ID = PO.PRT_ID AND ORD.ORD_ID = PO.ORD_ID AND ORD.MAT_ID = MAT.MAT_ID Talvez halla otra solucion para mostrarlo en el dbgrid, no lo se Espero haberme hecho entender y gracias de antemano por alguna respuesta |
No se si he entendido bien tu problema, pero puedes probar a agregar a la consulta que tu propones la siguiente línea :
con lo que los totales te saldrán agrupados por orden y material, que parece ser lo que buscas. Un saúdo |
si con aquello me salen los grupos ordenados por orden y material, pero me faltaria obtener la suma de ingresos y salidas de las partes q estan anexados a ese material, ese es mi problema, la solucion que propuse no sale con eso
|
Prueba con
Suerte |
Cita:
Cita:
:o:p Un saúdo |
Gracias Ariefez!!!!!!!!
gracias por las respuestas pero de esa forma ya lo habia pensado y no es lo que queria ya que no me arroja los valores deseados por tanto GROUP
Mas Gracias a mi sensei Ariefez que otra vez tuve que molestarlo para que me ayude en la respuesta la cual es: Código SQL [-] SELECT SUMAS.ORD_ID, ORDEN.ORD_COD, MAT.MAT_COD, MAT.MAT_NOM, SUMAS.INGRESO_1, SUMAS.INGRESO_2, iNVL(SUMAS.INGRESO_1, 0) / iNVL(SUMAS.INGRESO_2, 0), SUMAS.SALIDA FROM (SELECT ORD.ORD_ID, SUM(PRT.PRT_ING_1) INGRESO_1, SUM(PRT.PRT_ING_2) INGRESO_2, SUM(PRT.PRT_SAL) SALIDA FROM ORDENES ORD, PARTES PRT, PRT_ORD PO WHERE PRT.PRT_ID = PO.PRT_ID AND ord.ORD_ID = PO.ORD_ID GROUP BY ORD.ORD_ID) SUMAS, MATERIALES MAT, ORDENES ORDEN WHERE MAT.MAT_ID = ( SELECT MAT_ID FROM ORDENES WHERE ORD_ID = SUMAS.ORD_ID) AND ORDEN.ORD_ID = ( SELECT ORD_ID FROM ORDENES WHERE ORD_ID = SUMAS.ORD_ID) Ps: no se por que lo anterior no se ve bonito si todo lo encierro en codigo sql y en la vista previa se ve como codigo sql pero a la hora que aparece en el foro ya se ve asi, ayuda? xD |
La franja horaria es GMT +2. Ahora son las 05:12:29. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi