Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-10-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Tablas relacionadas por una campo en comun

Hola yo denuevo por aca, aer si me pueden ayudar con un codigo SQL.

Tengo esto andando, y funcionando bien
Código SQL [-]
select DISTINCT AREA, sum(monto), sum(original) FROM presupuesto
where empresa ='MAT'
group by area

Lo que quiero hacer es agregar una cuarta columna con la suma que exprese lo que tengo en este otro codigo

Código SQL [-]
select DISTINCT AREA, sum(unitario * unidades) FROM detfactura
where empresa ='MAT'
group by area

Estas tablas estan asociadas por el campo AREA.
Lo que necesito es que me genera una lista de todas las distintas area con sus respectivos montos sumados (monto, original, unitario * unidades).

Se podra hacer esto.. como?
Responder Con Cita
  #2  
Antiguo 01-10-2008
IgnacioHaro IgnacioHaro is offline
Miembro
 
Registrado: oct 2007
Posts: 19
Poder: 0
IgnacioHaro Va por buen camino
subquery

yo lo haria de esta forma:

Código SQL [-]
select DISTINCT p.AREA, sum(p.monto), sum(p.original), t.total
FROM presupuesto as p
LEFT JOIN (
select DISTINCT AREA, sum(unitario * unidades) as total
FROM detfactura
where empresa ='MAT'
group by area
) as t ON (p.area=t.area)
where p.empresa ='MAT'
group by p.area


espero te sirva, saludos ...
Responder Con Cita
  #3  
Antiguo 01-10-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
Me parece mas sencillo asi
Código SQL [-]
select DISTINCT p.AREA, sum(p.monto), sum(p.original), sum(d.unitario * d.unidades) FROM presupuesto p
inner join detfactura d on (p.area=d.area)
where empresa ='MAT'
group by p.area

puedes cambiar el inner por un left
suerte
Responder Con Cita
  #4  
Antiguo 01-10-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
hice algunas modificaciones y quedo funcionando cno este codigo

Código SQL [-]
select DISTINCT p.AREA, sum(p.monto), sum(p.original), SUM(d.unitario * d.unidades)/COUNT(P.AREA)  FROM presupuesto p
inner join detfactura d on (p.area=d.area)
where P.empresa ='MAT' AND D.empresa ='MAT' AND P.MES ='9' AND D.MES='9'
group by p.area

Ahora bien se me presento otro problema, solo si es que la tabla detfactura tiene registros, me arroja los resultados que quiero. Es decir, si tengo en la tabla detfactura registros con valores del campo Area por ejemplo area1 y area2... solo me arroja los valores de la suma de monto y original de esas dos area solamente, las otras areas (3,4,5,6,7,8), no me las muestra.

Lo que deberia mostrar es un listado con todas las area con sus respectivas sumas, indistintamente si estas suman 0 ó tienen un valor.

Resumiendo: Solo me muestra las area en que las suma de (d.unitario * d.unidades) es distinto de 0.

Ojala se haya entendido.... gracias de ante mano
Responder Con Cita
  #5  
Antiguo 02-10-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
Hola
me imagino que la tabla presupuesto contiene datos para todos los registros, o sea que tiene todas las areas para las condiciones que planteas
Si es asi, solo tienes que cambiar la palabra inner join por left join
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
2 tablas relacionadas por un campo mjjj SQL 3 10-09-2008 16:32:54
Tablas relacionadas mjjj Varios 1 21-01-2008 19:06:46
Tablas Relacionadas y SQL Deiv SQL 10 14-08-2007 16:26:33
Reporte tablas relacionadas silviodp Impresión 0 06-01-2005 16:25:36
Update en Tablas Relacionadas gluglu Conexión con bases de datos 0 01-10-2004 20:42:50


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


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