Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

SQL - Ayuda con consulta

Participa en el tema SQL - Ayuda con consulta en el foro Programación.
Hola, les comento el problema que tengo: Tengo una tabla llamada deudas que contiene la ...

Buscar en este tema:
 
  •  
    #1 SQL - Ayuda con 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!
    Editado por chicho6666 - 02.07.2009 13:53 hs.
    +
     
    0
    Me gusta
     
    | Más
  • #2 Re: SQL - Ayuda con consulta

    Tenes el operador IN, para armar cosas por ejemplo
    WHERE CONCEPTO IN ('CUOTA','OTRO','etc')...
    Me gusta este mensaje
  • #3 Re: SQL - Ayuda con consulta

    AGUSTINE_RAMONE gracias por responder, pero si utilizo IN en el WHERE para filtrar CONCEPTOS no me los va a sumar para la DEUDA.

    Se te ocurre otra idea? Gracias!
    Me gusta este mensaje
  • #4 Re: SQL - Ayuda con consulta

    no entiendo que queres sumar entonces, todos los conceptos? sacale el where
    Me gusta este mensaje
  • #5 Re: SQL - Ayuda con consulta

    AGUSTIN: Lo que pretendo SUMAR es el total de la columna IMPORTE y CONTAR la columna CONCEPTO si el mismo es CUOTA.
    Se entiende? el resultado de lo que tendria que dar el ejemplo esta en el segundo cuadro de CODIGO.
    Gracias!
    Me gusta este mensaje
  • #6 Re: SQL - Ayuda con consulta

    Hacelo por partes. Primero agrupá por factura, después por cliente:
    Código:
    SELECT cliente, SUM(importe) AS deuda, COUNT(*) AS cantidad
    FROM (SELECT cliente, factura, SUM(importe)
          FROM deudas
          GROUP BY cliente, factura) AS por_factura
    GROUP BY cliente
    
    Saludos.
    Me gusta este mensaje
  • #7 Re: SQL - Ayuda con consulta

    Pangus: tu respuesta me oriento bastante y al final la modifique un poco y anduvo 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
    
    Esta consulta me devuleve lo pedido.

    Gracias!
    Me gusta este mensaje
  • #8 Re: SQL - Ayuda con consulta

    Por lo que escribiste parecía que querías sumar la cantidad de facturas, no la cantidad de conceptos 'cuota'. Para esto último, más sencillo hacer:
    Código:
    SELECT cliente, SUM(importe), SUM(DECODE(concepto, 'cuota', 1, 0))
    FROM deudas
    GROUP BY cliente
    
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 7 RESPUESTAS
  • 153 VISTAS
  • 3 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB