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 18-04-2008
oca oca is offline
Miembro
 
Registrado: ene 2005
Posts: 10
Poder: 0
oca Va por buen camino
Consulta sql Compleja

Hola Gente, estoy ante un problema. Uso firebird 2 y tengo una tabla con la siguiente estructura:

Codigo: VarChar(13)
Rubro: INteger
Fabrica: VarChar(2)
Cantidad: INteger
Precio_Venta: Decimal
Costo: Decimal

La idea es hacer una consulta que obtenga la cantidad vendida por rubro y fabrica, hasta ahi vamos perfecto, seria algo así:

Select Rubro, Fabrica, Sum(Cantidad)
from Tabla
Group By Rubro, Fabrica

Pero que pasa si quiero que sume la cantidad, el precio de venta y el costo, pero que no sume al precio de venta los articulos que tienen costo 0, pero que considere la suma de la cantidad aunque el costo sea cero

Alguna idea?

Gracias.
Responder Con Cita
  #2  
Antiguo 19-04-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Código SQL [-]
 Select Rubro, Fabrica, 
Sum(Cantidad) as Suma_Cantidad,
sum( IIF(Precio_Venta > 0.0 ,Precio_Venta,0.0) ) as Suma_Precio,
sum(Costo) as Suma_Costo
 from Tabla 
 Group By Rubro, Fabrica
Ojo, que esto funciona desde el firebird 2.0, que fue lo que mencionas en tu hilo.
Responder Con Cita
  #3  
Antiguo 19-04-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por juanelo
Código SQL [-]
sum( IIF(Precio_Venta > 0.0 ,Precio_Venta,0.0) )
Bueno, pero, ¿qué más da? Si el precio de venta es cero, se suma un cero y la suma total queda igual ¿no?

// Saludos
Responder Con Cita
  #4  
Antiguo 19-04-2008
oca oca is offline
Miembro
 
Registrado: ene 2005
Posts: 10
Poder: 0
oca Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Bueno, pero, ¿qué más da? Si el precio de venta es cero, se suma un cero y la suma total queda igual ¿no?

// Saludos
Roman: No, no es lo mismo, ya que lo que tengo que evitar es sumar el precio de venta cuando el costo es cero, y sumar la cantidad en cualquiera de los casos.

Juanelo, gracias por tu respuesta, ahora mismo la pruebo
Responder Con Cita
  #5  
Antiguo 20-04-2008
Avatar de Ferrari
Ferrari Ferrari is offline
Miembro
 
Registrado: jun 2006
Ubicación: Torreón, México
Posts: 154
Poder: 18
Ferrari Va por buen camino
buaaa...hay esta roman, por opinar ya nos dieron carpetazo de ke 'no digas nada' porke era CERO..jajaja ntc es broma, saludos
Responder Con Cita
  #6  
Antiguo 21-04-2008
oca oca is offline
Miembro
 
Registrado: ene 2005
Posts: 10
Poder: 0
oca Va por buen camino
Juanelo, funciono perfecto, gracias!.
Por pura curiosidad, ¿ había alguna otra manera de solucionarlo sin usar IIF ?, es decir usando las funciones de suma y agrupamiento nativas del sql.
Responder Con Cita
  #7  
Antiguo 21-04-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por oca Ver Mensaje
Juanelo, funciono perfecto, gracias!.
Por pura curiosidad, ¿ había alguna otra manera de solucionarlo sin usar IIF ?, es decir usando las funciones de suma y agrupamiento nativas del sql.
Que tal Oca, me alegro que te haya servido, con respecto a tu pregunta, pues se puede intentar con tablas derivadas (que ya son estandar SQL), pero la verdad es que no le he intentado, o bien con un CASE.
Responder Con Cita
  #8  
Antiguo 21-04-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Bueno, pero, ¿qué más da? Si el precio de venta es cero, se suma un cero y la suma total queda igual ¿no?

// Saludos
Responder Con Cita
  #9  
Antiguo 21-04-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿A qué se debe la cara? Por lo que veo, el condicional es

Código SQL [-]
sum( IIF(Costo > 0.0 ,Precio_Venta,0.0) )

pero en ese momento vi que habías puesto

Código SQL [-]
sum( IIF(Precio_Venta > 0.0 ,Precio_Venta,0.0) )

y de ahí mi comentario.

// Saludos
Responder Con Cita
  #10  
Antiguo 21-04-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por roman Ver Mensaje
¿A qué se debe la cara? Por lo que veo, el condicional es

Código SQL [-]sum( IIF(Costo > 0.0 ,Precio_Venta,0.0) )


pero en ese momento vi que habías puesto

Código SQL [-]sum( IIF(Precio_Venta > 0.0 ,Precio_Venta,0.0) )


y de ahí mi comentario.

// Saludos
Absolutamente de acuerdo, y la cara es porque ni yo mismo habia visto el error, o sea, de confusión.
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 ¿compleja? salvica SQL 4 13-01-2008 20:03:09
La consulta es demasiado compleja mane Conexión con bases de datos 0 26-12-2007 10:00:07
Consulta compleja Jesús Pena SQL 3 19-07-2007 07:54:40
Consulta SQL algo compleja subzero Firebird e Interbase 2 26-10-2006 18:49:01
consulta SQL que me resulta compleja j2mg SQL 5 29-05-2003 22:50:13


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


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