![]() |
Clientes con Total Facturacion >= 3000
Hola al grupo:
Necesito hacer una consulta para saber que clientes tienen más de 3.000 € de facturación entre dos fechas(el tipico resumen anual). El caso es que estoy bloqueado, no veo la consulta... Ayuda: Tengo una típica tabla de Clientes y otra típica tabla de Facturas, con un campo Total. Gracias de antemano. |
Hola.
Puedes hacer algo de este estilo : Código:
select CLI_ID, CLI_NOMBRE, CLI_APELLIDOS |
esto... Marc, te ha faltado poner en SUM en el SELECT :p
Código:
select CLI_ID, CLI_NOMBRE, CLI_APELLIDOS, SUM(FAC_TOTAL) |
Hola.
La verdad es que no es imprescindible para que funcione la consulta. Aunque ciertamente, probablemente también necesitará incluir en la relación de clientes el importe acumulado. Saludos. |
Gracias por el interes mostrado.
Acabo de probar,,,pero: Dynamic SQL Error SQL error code = -104 invalid column reference siempre que añado la clausula "sum(F.Total)" |
Tu base de datos no debe soportar la cláusula HAVING, ¿ que base de datos utilizas ?
Saludos. |
InterBase 6.0, con SQL dialect 1 y si cambio a 3 idem.
|
Hola.
Es curioso porqué Firebird 1 si ejecuta perfectamente esa sentencia, y Firebird 1 es practicamente un hermano gemelo de Interbase 6.0. (Aunque las pruebas las he hecho con Dialecto 3). ¿ Porque no sustituyes Interbase 6.0 por Firebird 1.03 ?. Estas dos bases de datos són tan parecidas (Firebird es una evolución open source generada a partir del código de Interbase 6.0 liberado por Borland en su momento), que muy probablemente no tengas que tocar ni una sola linea de código. Ademas de ejecutar correctamente agrupaciones con HAVING, Firebird 1.03 es más estable que Interbase 6.0 puesto que tiene muchos bugs corregidos, además de caracteristicas adicionales, como por ejplo. consultas SELECT FIRST n ....., etc. ... http://sourceforge.net/project/showf...?group_id=9028 Bájate Firebird 1.03 para Win32 (NOTA : ya está disponible una versión casi final de Firebird 1.5, pero aunque es más rápido y lleva bastantes características nuevas, no te lo recomiendo inicialmente puesto que seguramente tendrías que modificar tu programa por problemas de compatibilidad con IB 6.0). Saludos. |
Voy a probarlo,,, gracias x1.000
|
Algo tengo que estar haciendo mal.
select C.Cliente, C.Titulo, SUM(F.TOTAL) from CLIENTES C inner join FACTURAS_CLIENTES F on F.Cliente = C.Cliente group by C.Cliente having sum(F.TOTAL) > 3000 sigue sin funcionar. |
¿ Lo has probado con Firebird 1.03 ?
¿ Te da el mismo error u otro ? El error te indicaba que no reconocia la columna, ¿ estas seguro que el campo se llama así ?, prueba primero la consulta sin el HAVING. Saludos. |
select C.Cliente, C.Titulo, SUM(F.TOTAL)
from CLIENTES C inner join FACTURAS_CLIENTES F on F.Cliente = C.Cliente group by C.Cliente, cTitulo having sum(F.TOTAL) > 3000 Un Saludo. Estoy ya te lo habia dicho Marc y Cadetill. |
Sólo una nota aclaratoria, recuerda que en la cláusula Group By han de ir los mismos campos que en la Select menos los de agregado
|
Es lo que tiene la ignorancia.
Gracias x 1.000 (otra vez) |
La franja horaria es GMT +2. Ahora son las 02:10:13. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi