Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ayuda en consulta

Estas en el tema de Ayuda en consulta en el foro de Bases de Datos General en Foros del Web. Hola, les comento el problema que tengo: Tengo una tabla llamada deudas que contiene la siguiente estructura: Código: cliente |factura|concepto|vencimiento |importe ------------------------------------------------ juan |0000001|cuota |10-01-2009 ...
  #1 (permalink)  
Antiguo 02/07/2009, 11:01
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 15 años, 6 meses
Puntos: 0
Ayuda en consulta

Hola, les comento el problema que tengo:



Tengo una tabla llamada deudas que contiene la siguiente estructura:



Código:
cliente |factura|concepto|vencimiento |importe

------------------------------------------------

juan |0000001|cuota  |10-01-2009 |10

juan |0000001|impuesto|10-01-2009 |2

juan |0000001|extras  |10-01-2009 |3

juan |0000002|cuota  |10-02-2009 |10

juan |0000002|impuesto|10-02-2009 |2

juan |0000003|cuota  |10-03-2009 |10

juan |0000003|impuesto|10-03-2009 |2

juan |0000003|extras  |10-03-2009 |3




Yo deberia hacer una consulta que me devuelva:

Código:
cliente |deuda |facturas adeudadas

-----------------------------------

juan |42 |3




Tener en cuenta que una factura un mes puede tener 2,3 o x cantidad de conceptos.

La deuda es el total de todos los conceptos.



Yo hice esta consulta:



Código:
SELECT CLIENTE, Sum(IMPORTE) AS DEUDA, Count(CONCEPTO) AS FACTURAS_ADEUDADAS

FROM DEUDAS

WHERE CONCEPTO = 'CUOTA'

GROUP BY CLIENTE


Pero devolvio (no suma a la deuda los conceptos que no sean cuotas)



Código:
 

cliente |deuda |facturas adeudadas

-----------------------------------

juan |30 |3


Hice esta otra:



Código:
 

SELECT CLIENTE, Sum(IMPORTE) AS DEUDA, Count(CONCEPTO) AS FACTURAS_ADEUDADAS

FROM DEUDAS

GROUP BY CLIENTE


Pero devolvio (cuenta todos los concepto en facturas adeudadas)



Código:
 

cliente |deuda |facturas adeudadas

-----------------------------------

juan |42 |8


Me olvidadba, la base de datos es Oracle 10i



Cualquier ayuda sera bienvenida!
  #2 (permalink)  
Antiguo 03/07/2009, 02:46
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 17 años
Puntos: 11
Respuesta: Ayuda en consulta

Hola chicho
Varias cosas. La primera Select que propones NO te suma los coneptos que no sean CUTOAS, porque eso es lo que le estas diciendo en la SELECT. Cuando pones : WHERE CONCEPTO='CUOTAS' le estás diciendo que te sume sólo las cuotas.

La segunda select está mal, porque el SUM (CONCEPTO) lo que te hace es sumarte todos los conceptos, y en total tienes 8.

Prueba cone esto:

Cita:
SELECT a.CLIENTE, Sum(a.IMPORTE) , Count(a.CONCEPTO) ,
(select count(distinct(b.factura)) from deudas b where b.cliente=a.cliente)
FROM DEUDAS a
GROUP BY a.CLIENTE
Lo que hacemos es la select, es una Subslect dentro de la select para que nos muestr el dato del sumatorio de facturas.

ya nos dices que tal.
  #3 (permalink)  
Antiguo 03/07/2009, 05:35
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Ayuda en consulta

Javi: gracias por tu respuesta, me sirvio bastante, le hice unas modificaciones y salio todo OK.

Código:
SELECT a.CLIENTE, Sum(a.IMPORTE) AS DEUDA, 
(select count(b.CONCEPTO) from deudas b where b.cliente=a.cliente and b.concepto='CUOTA') AS TOTAL_CUOTAS
FROM DEUDAS a
GROUP BY a.CLIENTE
Ese fue el codigo y me devolvio lo que pedia.

Gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:17.