Club Delphi  
    Paypal   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 20-01-2009
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
Muchas gracias por tu tan clara explicación, pero ocurre algo, al tratar de hacer la consulta en el IBExpert, me arroja un error en la primera linea, No reconoce el campo "C.T_monto_compr", que es el campo de la sumatoria de la tabla compras "sum(Monto_compr) as T_monto_compr".

Al parecer no reconoce este campo ya que es la respuesta de la segunda consulta.

porque ocurrira esto?
utilizo Firebird 2.0, sera que en esta version no se puede realizar este tipo de consultas?

y lo ultimo, donde agrego la considion del campo estado de la tabla compras?
ya que son 2 condiciones distintas, 'F' para la suma y 'P' para el count.

Les dejo mis dudas, y de ante mano muchas gracias por todo, me han ayuda muchisimo.

Saludos
Responder Con Cita
  #2  
Antiguo 20-01-2009
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
Eh! Bpascal, estupendísima explicación. Además eres el único que has dado en el clavo.
Yo creo que hemos aprendido todos algo con tu aportación.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #3  
Antiguo 20-01-2009
Bpascal Bpascal is offline
Miembro
 
Registrado: ene 2009
Posts: 14
Poder: 0
Bpascal Va por buen camino
Cita:
Muchas gracias por tu tan clara explicación, pero ocurre algo, al tratar de hacer la consulta en el IBExpert, me arroja un error en la primera linea, No reconoce el campo "C.T_monto_compr", que es el campo de la sumatoria de la tabla compras "sum(Monto_compr) as T_monto_compr".
Revisa bien si es un error de deletreo de nombres, espero que eso sea, el codigo lo probé en MsSql 2005, asegurate que el SELECT donde se resume la tabla de compras esta entre parentesis y que el alias "C" esta DESPUES de cerrar parentesis.

Cita:
y lo ultimo, donde agrego la considion del campo estado de la tabla compras?
ya que son 2 condiciones distintas, 'F' para la suma y 'P' para el count.
En el SELECT donde se resume la tabla compras, toma nota que es muy similar a tu codigo original la diferencia es que el select anidado que utilizabas se movió del select principal y aqui no lleva condiciones.
Responder Con Cita
  #4  
Antiguo 21-01-2009
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
Bpascal, lo he verificado varias veces, y no es un problema de deletreo, incluso probe con otro ejemplo utilizando la misma idea y tampoco funciona.

Al parecer Firebird 2.0, no soporta este tipo de consultas.

Podrá ser esto??
Responder Con Cita
  #5  
Antiguo 21-01-2009
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
Pero esto sí debe de 'tragar'
Código SQL [-]
select p.area , P.monto, 
                sum(case when estado = 'F' then monto_compr else 0 end) AS COMPRA,
               count(case when estado = 'P' then 1 else 0 end) AS EXCEDIDA
from presupuesto p inner join compras c on p.empresa=c.empresa and c.area = p.area and c.ano = p.ano
and p.mes = c.mes AND P.EMPRESA = C.EMPRESA AND P.AREA=C.AREA and p.oficina = c.oficina
where p.mes = '1'
and p.ano =   '2009'
and P.empresa = 'emp1'
and p.oficina = '1'
GROUP BY P.AREA, P.MONTO

Date cuenta de que he quitado la función de agregado al campo monto y lo he añadido al group by.

Ya nos contarás.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #6  
Antiguo 22-01-2009
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
Amigos, no me funciona para nada. La idea que mas me gusta fue la de Bpascal, pero tampoco resulto, revise que estuviera todo bien escrito, y asi es.

Será que utilizo Firebird 2.0, que no permite este tipo de consultas.

Si es asi que me recomiendan hacer?

Gracias
Responder Con Cita
  #7  
Antiguo 28-01-2009
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
Retomando este tema que me tiene bastante afligido, voy a plantear otra pregunta, que de poder encontrar una solucion, se me facilitaria mi problema general.

Presento la consulta SQL que requiero, pero que me arroja un error.

Código SQL [-]
select INGRESO - EGRESO, sum(case when tipo = 'I' THEN CANTIDAD ELSE 0 END) as INGRESO,
sum(case when tipo = 'E' THEN CANTIDAD ELSE 0 END) as EGRESO
from INVENTARIO WHERE EMPRESA = 'EMP1'

Lo que ocurre es que no puedo usar los campos calculos para volver a realizar otrso calculos con ellos.

Como puedo hacer esta consulta de otra manera, lo mas eficiente posible?

Gracias
Responder Con Cita
  #8  
Antiguo 28-01-2009
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 23
AzidRain Va camino a la fama
Código SQL [-]
select INGRESO - EGRESO, sum( if(tipo = 'I', CANTIDAD,0)) as INGRESO,
sum( if(tipo= 'E', CANTIDAD, 0) ) as EGRESO
from INVENTARIO WHERE EMPRESA = 'EMP1'

No se si la sintaxis de IF sea la misma en FB, pero checale.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
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
Facturación e Inventario silver07 Conexión con bases de datos 49 22-10-2015 19:45:33
SQL inventario mjjj SQL 7 12-12-2008 17:13:29
Aplicacion + Inventario mjjj Varios 8 03-11-2008 15:58:54
Costo de Inventario NickName SQL 4 09-10-2006 06:30:31
Inventario de Hardware vichovi API de Windows 3 03-01-2005 15:35:10


La franja horaria es GMT +2. Ahora son las 00:34:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi