SQL - PROBLEMAS CON UN SENTENCIA SQL

   
Vista:

PROBLEMAS CON UN SENTENCIA SQL

Publicado por Celso (1 intervención) el 23/11/2007 19:38:53
Hola a todos.
Tengo 3 tablas
d_albven, (lineas de albaranes) con los campos numero, importe imp_com
c_albven , (cabeceras de albaranes) con numero, cliente, factura
previ_cl (previsones de cobro) con factura y banco
Necesito hacer una consulta con este formato
cliente, nº factura,sum(importe),sum(imp_com), banco

Generé la siguiente formula sql

SELECT T1.FACTURA, T1.CLIENTE, T2.BANCO, SUM(T3.IMP_COM) AS TCOMI, SUM(T3.IMPORTE) AS TIMP FROM ((d_albven T3 INNER JOIN c_albven T1 ON T3.NUMERO=T1.NUMERO) INNER JOIN COMUNES!previ_cl T2 ON T1.CLIENTE=T2.CLIENTE) WHERE T1.EMPRESA="01" GROUP BY T1.FACTURA ORDER BY T1.FACTURA

pero los datos del sum(importe) y sum(imp_com) son muchisimo mas grandes de lo que debían ser.

Probé a hacerlo solo con dos tablas d_albven
SELECT T1.FACTURA, T1.CLIENTE, SUM(T2.IMPORTE) AS timpo, SUM(T2.IMP_COM) AS TIMP_COM FROM (c_albven T1 LEFT JOIN d_albven T2 ON T1.NUMERO=T2.NUMERO) GROUP BY T1.NUMERO
y c_albven y también me da mal.
Probé con una sola tabla
SELECT CLIENTE, NUMERO, SUM(d_albven.IMP_COM) AS TIMCO, SUM(d_albven.IMPORTE) AS TIMPO FROM d_albven GROUP BY NUMERO
WHERE EMPRESA="01" ORDER BY NUMERO

y así me da bien los sumatorios me dan bien , pero me faltan campos.

Por favor ayudarme, lo necesito muy urgente, depende mi curro de ello.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:PROBLEMAS CON UN SENTENCIA SQL

Publicado por Liliana (20 intervenciones) el 26/11/2007 13:11:43
Hola,
es probable que haya llegado tarde a tu urgencia, pero al menos para intentar dar respuesta...
Confirmame por favor si esta consulta no da los números esperados:

SELECT T1.FACTURA, T1.CLIENTE,
SUM(T3.IMP_COM) AS TCOMI,
SUM(T3.IMPORTE) AS TIMP
FROM d_albven T3
INNER JOIN c_albven T1 ON T3.NUMERO=T1.NUMERO
WHERE T1.EMPRESA="01"
GROUP BY T1.FACTURA, T1.CLIENTE ORDER BY T1.FACTURA

Con respecto a la combinación de las tres tablas, entiendo que falta una columna en la comparación, que será factura, no?

Saludos,
Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROBLEMAS CON UN SENTENCIA SQL

Publicado por Celso (4 intervenciones) el 27/11/2007 17:56:01
Muchas gracias liana,
Me funcionó perfectamente.
Pero ahora al querer añadir el l campo banco de la tabla previ_cl

SELECT T1.FACTURA, T1.CLIENTE, t1.importe,
SUM(T3.IMP_COM) AS TCOMI, SUM(T3.IMPORTE) AS TIMP,
t2.banco FROM ((d_albven T3 INNER JOIN c_albven T1 ON T3.NUMERO=T1.NUMERO) inner JOIN COMUNES!previ_cl T2 ON T1.factura=T2.factura) WHERE T1.EMPRESA="01" and t1.factura=t2.factura GROUP BY T1.FACTURA, T1.CLIENTE ORDER BY T1.FACTURA

me funciona mal, He probado de varias formas pero siempre me funciona mal.
me puedes decir donde está el error ?

Saludos y muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROBLEMAS CON UN SENTENCIA SQL

Publicado por Liliana (20 intervenciones) el 28/11/2007 13:55:42
Hola Celso,
En el GROUP BY falta agregar el banco.
Cuando decís que funciona mal, te referís a mensaje de error o a problemas con los datos?
En la tabla previ_cl, puede haber más de una fila por factura?
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROBLEMAS CON UN SENTENCIA SQL

Publicado por Celso Comesaña Estevez (4 intervenciones) el 29/11/2007 17:11:04
Hola Liliana, gracias por salir al rescate.
Cuando digo que funciona mal me refiero a que el resultado de los sum no es correcto.
En la tabla previ_cl puede haber mas de una fila por factura.

A ver si con tu ayuda soy capaz de hacer funcionar esto.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROBLEMAS CON UN SENTENCIA SQL

Publicado por Celso Comesaña Estevez (4 intervenciones) el 29/11/2007 17:12:02
Hola Liliana, gracias por salir al rescate.
Cuando digo que funciona mal me refiero a que el resultado de los sum no es correcto.
En la tabla previ_cl puede haber mas de una fila por factura.

A ver si con tu ayuda soy capaz de hacer funcionar esto.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROBLEMAS CON UN SENTENCIA SQL

Publicado por Liliana (426 intervenciones) el 29/11/2007 20:55:38
Hola Celso,
Eso me temía...
Entonces:

SELECT T1.FACTURA,
T1.CLIENTE,
BANCO = (SELECT BANCO T3 FROM d_albven WHERE T3.NUMERO = T1.NUMERO),
SUM(T3.IMP_COM) AS TCOMI,
SUM(T3.IMPORTE) AS TIMP
FROM c_albven T1
INNER JOIN COMUNES!previ_cl T2 ON T1.CLIENTE=T2.CLIENTE
WHERE T1.EMPRESA="01"
GROUP BY T1.FACTURA,
T1.CLIENTE
ORDER BY T1.FACTURA

Puede que haya algún error de sintaxis, no estoy con el sql para probarlo ahora.
Saludos, Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar