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 01-05-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Consulta sobre 2 tablas

Area si alguien me puede ayudar un poquito con una consulta SQL.

Código Delphi [-]
Select p.Area, Sum(p.Monto) as Monto, sum(c.monto_compr) as Total from presupuesto p, compras c
where p.Empresa = c.empresa and c.empresa = 'empresa1'
and p.periodo = c.periodo and c.periodo = '2008-04'
GROUP BY AREA

No me tira ningun error, pero no me da los valores que necesito.

Lo que necesito que me entregue es una lista de todas las area de la empresa, con su respectiva suma de presupuesto (monto) y la suma de las compras (monto.compr), en un determinado periodo.

Tengo 2 tablas, que se pueden relacionar por el campo AREA, PERIODO y EMPRESA.

Espero me puedan ayudar
Responder Con Cita
  #2  
Antiguo 01-05-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Cool

Cita:
Empezado por mjjj Ver Mensaje
Area si alguien me puede ayudar un poquito con una consulta SQL.


Código Delphi [-]
Select p.Area, Sum(p.Monto) as Monto, sum(c.monto_compr) as Total from presupuesto p, compras c
where p.Empresa = c.empresa and c.empresa = 'empresa1'
and p.periodo = c.periodo and c.periodo = '2008-04'
GROUP BY AREA





No me tira ningun error, pero no me da los valores que necesito.

Lo que necesito que me entregue es una lista de todas las area de la empresa, con su respectiva suma de presupuesto (monto) y la suma de las compras (monto.compr), en un determinado periodo.

Tengo 2 tablas, que se pueden relacionar por el campo AREA, PERIODO y EMPRESA.

Espero me puedan ayudar
Intenta con esto

Código SQL [-]
Select p.Area, Sum(p.Monto) as Monto, sum(c.monto_compr) as Total 
from presupuesto p, compras c
where p.Empresa = c.empresa and c.empresa = 'empresa1'
and c.periodo = '2008-04'
GROUP BY AREA

esta condicion estaba sobrando
Código SQL [-]
p.periodo = c.periodo

Salu2
__________________
BlueSteel
Responder Con Cita
  #3  
Antiguo 01-05-2008
Avatar de alexey1982
alexey1982 alexey1982 is offline
Miembro
 
Registrado: abr 2008
Ubicación: mezzico
Posts: 15
Poder: 0
alexey1982 Va por buen camino
pregunta

oigan amigos , tachenme de inmunda rata ignorante pero.. me podrian explicar que significa ese dato: la "P" y la "C" es el nombre de la tabla o es alguna convencion de sql.. O_O' (por que ya lo habia visto antes en el curso sql para pollos, que estoy tomando pero en el mendigo libro no explican eso....!!)
un saludo...
Responder Con Cita
  #4  
Antiguo 01-05-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Cool

Cita:
Empezado por alexey1982 Ver Mensaje
oigan amigos , tachenme de inmunda rata ignorante pero.. me podrian explicar que significa ese dato: la "P" y la "C" es el nombre de la tabla o es alguna convencion de sql.. O_O' (por que ya lo habia visto antes en el curso sql para pollos, que estoy tomando pero en el mendigo libro no explican eso....!!)
un saludo...

Hola

mira si te fijas en la sentencia SQL
Código SQL [-]
Select p.Area, Sum(p.Monto) as Monto, sum(c.monto_compr) as Total 
from presupuesto p, compras c
where p.Empresa = c.empresa and c.empresa = 'empresa1'
and c.periodo = '2008-04'
GROUP BY AREA

tiene declarado
Código SQL [-]
presupuesto p

esto quiere decir que presupuesto se pasará a llamar p...

es como si se pusiera
Código SQL [-]
presupuesto as p
, lo mismo pasa con
Código SQL [-]
compras c
, en donde la Tabla compras se llamará c (pero en la sentencia que se esta ejecutando...)

esto evita el poner el nombre largo y repetirlo en todos los campos..

espero que hayas entendido

Salu2
__________________
BlueSteel
Responder Con Cita
  #5  
Antiguo 01-05-2008
Avatar de alexey1982
alexey1982 alexey1982 is offline
Miembro
 
Registrado: abr 2008
Ubicación: mezzico
Posts: 15
Poder: 0
alexey1982 Va por buen camino
anda amigo steel, si es cierto!! gracias por explicarme!! (que aunque parece muy simple me has despejado de una duda de varios dias haha!! un saludo!)
Responder Con Cita
  #6  
Antiguo 01-05-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
hola Bluesteel.

Hice lo que me recomendaste, pero esto sigue sin funcionar. Voy a exponer mas detalladamente mi problema.

Tengo 2 tablas, con los siguientes campos:

Tabla 1 (Presupuesto): empresa, area, subarea, periodo, monto....
Tabla 2 (Compras):empresa, area, periodo, monto_compr...

Ejemplo de lo datos de la tabla 1 (Presupuesto):

empresa area subarea periodo monto
empresa1 area1 subarea2 2008-04 1.500
empresa1 area2 subarea2 2008-05 4.000
empresa2 area3 subarea1 2008-03 3.500
empresa2 area1 subarea2 2008-04 7.000
empresa1 area2 subarea3 2008-05 10.000

Ejemplo de lo datos de la tabla 2 (Compras):

empresa area periodo monto_compr
empresa1 area1 2008-04 3.000
empresa1 area2 2008-05 9.000
empresa2 area3 2008-03 15.500
empresa2 area1 2008-04 7.000
empresa1 area2 2008-05 10.000

Esto es lo que ocurre, la tabla 1, presenta los presupuestos asignados alguna area, periodo y empresa en particular, es decir, para la empresa1, area1, subarea2, periodo 2008-04 tiene un monto de 1.500.

En la tabla 2, se presentan un listado de todas las compra de cierta empresa.
Cada compra esta catalogada dentro de cierta area y periodo, y obviamente tiene cierto monto (monto_compr)

Finalmente lo que necesito realizar:

Necesito una consulta que me entregue en tres campos: el area, el presupuesto acumulado (suma), y compras acumuladas (suma), en cierto periodo y empresa en particular.

Por ahora lo que hago es hacerlo por separado, en dos consultas distintas y funciona bien, pero me gustaria obtener esta misma informacion en una sola consulta.

Lo estoy haciendo asi:
Código SQL [-]
Select p.Area, Sum(p.Monto_compr) as Monto
from compras p
where p.empresa = 'empresa1'
 and p.periodo = '2008-04'
GROUP BY AREA
 
 
Select p.Area, Sum(p.monto) as Presupuesto
from presupuesto
where p.empresa = 'empresa1'
 and p.periodo = '2008-04'
GROUP BY AREA

Esto funciona, pero quisiera ver si alguien me puede ayudar para realizar una sola consulta... y asi ahorrar tiempo.

Saludos, gracias.
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
Consulta con 4 tablas Caral Varios 7 17-10-2007 02:34:03
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
Consulta sobre tablas y DBLookupCombobox silviodp Conexión con bases de datos 6 29-11-2006 03:14:02
Consulta SQL con dos tablas... emeceuy Conexión con bases de datos 2 06-08-2005 07:41:59
Consulta SQL con 4 tablas nefy SQL 2 03-05-2004 23:25:22


La franja horaria es GMT +2. Ahora son las 05:58:29.


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