Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-05-2007
Avatar de VNyes
VNyes VNyes is offline
Registrado
 
Registrado: sep 2005
Posts: 6
Poder: 0
VNyes Va por buen camino
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

Última edición por VNyes fecha: 31-05-2007 a las 19:15:22.
Responder Con Cita
  #2  
Antiguo 30-05-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
No se si he entendido bien tu problema, pero puedes probar a agregar a la consulta que tu propones la siguiente línea :
Código SQL [-]
Order by ORD.ORD_ID, ORD.ORD_COD, MAT.MAT_COD, MAT.MAT_NOM
con lo que los totales te saldrán agrupados por orden y material, que parece ser lo que buscas.

Un saúdo
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #3  
Antiguo 31-05-2007
Avatar de VNyes
VNyes VNyes is offline
Registrado
 
Registrado: sep 2005
Posts: 6
Poder: 0
VNyes Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 01-06-2007
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
Prueba con
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
GROUP BY ORD.ORD_ID, ORD.ORD_COD, MAT.MAT_COD, MAT.MAT_NOM,

Suerte
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #5  
Antiguo 01-06-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
Cita:
Empezado por Ivanzinho
Código SQL [-]
Order by ORD.ORD_ID, ORD.ORD_COD, MAT.MAT_COD, MAT.MAT_NOM
con lo que los totales te saldrán agrupados por orden y material, que parece ser lo que buscas.

Un saúdo
Cita:
Empezado por VNyes
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
¿En que estaría pensando?, queria poner :
Código SQL [-]
Group by ORD.ORD_ID, ORD.ORD_COD, MAT.MAT_COD, MAT.MAT_NOM


Un saúdo
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #6  
Antiguo 01-06-2007
Avatar de VNyes
VNyes VNyes is offline
Registrado
 
Registrado: sep 2005
Posts: 6
Poder: 0
VNyes Va por buen camino
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

Última edición por VNyes fecha: 01-06-2007 a las 19:35:42.
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
Sumar Columnas leodelca23 Tablas planas 17 25-09-2006 22:05:48
sumar columnas en un dbgrid Choclito Varios 2 04-06-2006 11:55:39
sumar columnas en stringgrid Choclito Varios 1 11-05-2006 15:26:59
borrar los campos de un DBGrid sin borrar los titulos de las columnas Torreblanca OOP 2 02-08-2005 00:12:52
Sumar columnas de un DBGRID magm2000 Varios 3 27-09-2003 00:40:06


La franja horaria es GMT +2. Ahora son las 05:01:16.


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