ayuda en consulta

Colapsar
X
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar todos
nuevos mensajes

  • ayuda en consulta

    Hola a tod@s, resulta que les pido su ayuda. Realice un programa de contabilidad y hasta ahora todo bien. Pero en uno de los reportes necesitan un cambio, el cual me ha dejado estancado ya que tengo que agregar una tercera tabla a la consulta y me he quedado parado. El entorno es el siguiente tengo tres tablas las cuales van asi (omitire los campos que no entran en la consulta):

    cuentas:
    cuenta vc(10)
    nombre vc(10)
    debehaber vc(1)

    movimientos:
    cuenta vc(10)
    debe decimal(12,2)
    haber decimal(12,2)
    fecha1 date
    poliza vc(12)

    Polizas
    numero vc(12)
    tipo vc(2)

    La consulta que esta funcionando es la siguiente:
    Código:
    select a.cuenta,a.nombre, 
    
    if(a.debehaber='D',ifnull((select sum(debe-haber) from movimientos b where fecha1 between '" + dFecha1 + "' and '" + dFecha2 + "' and a.cuenta=b.cuenta ),0.00),0.00) as debe1,
    if(a.debehaber='H',ifnull((select sum(haber-debe) from movimientos b where fecha1 between '" + dFecha1 + "' and '" + dFecha2 + "' and a.cuenta=b.cuenta ),0.00),0.00) as haber1
    
    from cuentas a where nivel=5"
    (toda la consulta esta en una linea, para efectos que se entienda le di unos enteres)

    Pero ahora necesito que si la poliza es de tipo="CI", que no me sume ni me reste ese movimiento.

    Alquien me puede dar una manita, por favor.

    Saludos cordiales,

    byrpa

  • #2
    Re: ayuda en consulta

    ¿No es suficiente esto?
    Código:
    select a.cuenta, a.nombre, b.poliza
    ...
    from cuentas a where nivel=5 AND poliza <> 'CI'"
    José María Movilla Cuadrado
    ______________________
    Normas del foro
    www.foro.vb-mundo.com
    www.vb-mundo.com

    Comentario


    • #3
      Re: ayuda en consulta

      Gracias J.M.Movilla por tu respuesta, pero fijate que ese dato de tipo<>"CI" esta guardado en la tabla de polizas, que hasta ahora no esta dentro de la consulta inicial. Es por eso que necesito agregar esta tercera tabla a la consulta pero no se, en donde hacerlo.

      Saludos y muchas gracias por tu fina respuesta.

      Byrpa

      Comentario


      • #4
        Re: ayuda en consulta

        Claro, claro... Perdona que no te haya añadido ese dato tan fundamental:

        Código:
        from cuentas a ((INNER JOIN movimientos c ON c.cuenta = a.cuenta) INNER JOIN polizas b ON b.numero = c.poliza) where nivel=5"
        Esto suponiendo que el campo numero de polizas esté relacionado con el campo poliza de movimientos.
        José María Movilla Cuadrado
        ______________________
        Normas del foro
        www.foro.vb-mundo.com
        www.vb-mundo.com

        Comentario

        Trabajando...
        X