Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   problema con una consulta (https://www.clubdelphi.com/foros/showthread.php?t=73849)

leofuentes21 19-05-2011 22:29:02

problema con una consulta
 
hola amigos espero esten bien y tengan un buen dia todos.
soy un poco nuevo en delphi y disculpen sino me se explicar
espero me puedan ayudar con una consulta estoy trabajando con sql server 2000


lo que trato de hacer es hacer una cosulta que me muestre los saldo de los clientes los estoy haciendo por partes y hasta el momentos solo me muestra los cargos y abono pero el problema es que me solo un mismo saldo de cargos y abonos para todos los clientes. no se que estoy acindo mal...

las fechas las ingreso desde un datatimepicker cambian asi que solo las pongo de ejemplo.


Código Delphi [-]
SELECT DISTINCT B.CCLIE, B.NOMBRE,
                          (SELECT     SUM(A.IMPORTE) AS TOTAL
                            FROM          CUEN01 A INNER JOIN
                                                   CONC01 C ON A.TIPO_MOV = C.NUM_CPTO INNER JOIN
                                                   CLIE01 B ON A.CCLIE = B.CCLIE
                            WHERE      (A.FECHAELAB >= '02/02/11') AND (A.FECHAELAB <= '03/03/11') AND (C.VALOR = '0')) AS CARGO,
                          (SELECT     SUM(A.IMPORTE) AS TOTAL1
                            FROM          CUEN01 A INNER JOIN
                                        CONC01 C ON A.TIPO_MOV = C.NUM_CPTO INNER JOIN
                                                   CLIE01 B ON A.CCLIE = B.CCLIE
                            WHERE      (A.FECHAELAB >= '02/02/11') AND (A.FECHAELAB <= '03/03/11') AND (C.VALOR = '1')) AS ABONO
FROM         CUEN01 A INNER JOIN
                      CONC01 C ON A.TIPO_MOV = C.NUM_CPTO INNER JOIN
                      CLIE01 B ON A.CCLIE = B.CCLIE
WHERE     (A.FECHAELAB >= '02/02/11') AND (A.FECHAELAB <= '03/03/11')
GROUP BY B.CCLIE, B.NOMBRE

gracias por su respuesta de antemanos.

oscarac 19-05-2011 23:22:49

mmm
para poder ayudarte mejor, seria bueno saber que tablas tienes y que hay en cada tabla, como recomendacion adicional, al menos yo estilo colocarle nombres legibles a las tablas, para que puedan ser interpretadas por cualquiera, CUEN01 o CON01 o CGP01 como que no me dice mucho

abelg 20-05-2011 14:28:40

Hola Como no esta el modelo de datos, lo único que puedo ayudarte es que quiza los Alias que estas usando esten mal y un filtro mas como sigue

Código SQL [-]
SELECT DISTINCT B.CCLIE, B.NOMBRE,
                          (SELECT     SUM(A.IMPORTE) AS TOTAL
                            FROM          CUEN01 A INNER JOIN
                                          CONC01 C ON A.TIPO_MOV = C.NUM_CPTO INNER JOIN
                                          CLIE01 B ON A.CCLIE = B.CCLIE
                            WHERE      (A.FECHAELAB >= '02/02/11') AND (A.FECHAELAB <= '03/03/11') AND (C.VALOR = '0')
                                                                            and A.CCLIE = AA.CCLIE) AS CARGO, -- Para Filtrar del cliente
                          (SELECT     SUM(A.IMPORTE) AS TOTAL1
                            FROM          CUEN01 A INNER JOIN
                                          CONC01 C ON A.TIPO_MOV = C.NUM_CPTO INNER JOIN
                                          CLIE01 B ON A.CCLIE = B.CCLIE
                            WHERE     (A.FECHAELAB >= '02/02/11') AND (A.FECHAELAB <= '03/03/11') AND (C.VALOR = '1')
                                                                            and A.CCLIE = AA.CCLIE) AS ABONO -- Para Filtrar del cliente
FROM         CUEN01 AA INNER JOIN -- El Alias es Otro
                      CONC01 CC ON AA.TIPO_MOV = CC.NUM_CPTO INNER JOIN -- Lo mismo con el Alias
                      CLIE01 BB ON AA.CCLIE = BB.CCLIE -- Lo mismo con el Alias
WHERE     (AA.FECHAELAB >= '02/02/11') AND (AA.FECHAELAB <= '03/03/11')
GROUP BY BB.CCLIE, BB.NOMBRE


Mejor si muestras el modelo pero

leofuentes21 20-05-2011 23:42:53

gracias amigos ABELG me sirvio t ayuda y si tube ese pequeño error de no mostar las tablas

ya lo resolvi de esta manera

Código Delphi [-]
SELECT DISTINCT BB.CCLIE, BB.NOMBRE,
                          (SELECT     SUM(A.IMPORTE) AS TOTAL
                            FROM          CUEN01 A INNER JOIN
                                                   CONC01 C ON A.TIPO_MOV = C.NUM_CPTO INNER JOIN
                                                   CLIE01 B ON A.CCLIE = B.CCLIE
                            WHERE      A.FECHAELAB >='02/02/11' AND A.FECHAELAB <='03/03/11' AND  C.VALOR = '1' AND A.CCLIE = BB.CCLIE) AS CARGO,
                          (SELECT     SUM(A.IMPORTE) AS TOTAL1
                            FROM          CUEN01 A INNER JOIN
                                                   CONC01 C ON A.TIPO_MOV = C.NUM_CPTO INNER JOIN
                                                   CLIE01 B ON A.CCLIE = B.CCLIE
                            WHERE      A.FECHAELAB >='02/02/11' AND A.FECHAELAB <='03/03/11' AND C.VALOR = '0' AND A.CCLIE = BB.CCLIE) AS ABONO
FROM         CUEN01 AA INNER JOIN
                      CONC01 CC ON AA.TIPO_MOV = CC.NUM_CPTO INNER JOIN
                      CLIE01 BB ON AA.CCLIE = BB.CCLIE
WHERE     AA.FECHAELAB >='02/02/11' AND AA.FECHAELAB <='03/03/11'
GROUP BY BB.CCLIE, BB.NOMBRE


La franja horaria es GMT +2. Ahora son las 20:21:20.

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