FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
select con resta entre sums como condición
Hola a todos, ya busqué en los foros y no encontré lo que estoy buscando, les platico:
tengo un query que me da el total de ventas, el total de pagos y el saldo, el saldo es la resta del total menos los pagos. Lo que quiero es que me muestre únicamente los registros que tengan saldo mayor a cero. El query funciona bien: Código:
SELECT id_cliente, CAST(SUM(Total) AS NUMERIC(8,2)) ventas, CAST(SUM(Pago) AS NUMERIC(8,2)) pagos, CAST(SUM(Total)-SUM(Pago) AS NUMERIC(8,2)) Saldo FROM Historia WHERE Id_Sucursal = 1 group by id_cliente pero cuando agrego la condición da error Código:
SELECT id_cliente, CAST(SUM(Total) AS NUMERIC(8,2)) ventas, CAST(SUM(Pago) AS NUMERIC(8,2)) pagos, CAST(SUM(Total)-SUM(Pago) AS NUMERIC(8,2)) Saldo FROM Historia WHERE Id_Sucursal = 1 AND (SUM(Total)-SUM(Pago))> 0 group by id_cliente |
#2
|
|||
|
|||
Creo que lo que necesitas es la instrucción Having
Salidos cordiales |
#3
|
|||
|
|||
muchas gracias cloayza, lamentablemente no funcionó, no da error pero me sigue trayendo todos los saldos.
también sigo buscando la solución, si la encuentro antes se las comparto. gracias por la ayuda. |
#4
|
|||
|
|||
Fe de erratas.
amigo cloayza, corrijo, sí funcionó, sólo quité algunos paréntesis y funcionó a la perfección, muchas gracias por la ayuda. les paso cómo quedó el query real:
Gracias!! Última edición por Casimiro Notevi fecha: 26-04-2022 a las 19:32:33. Razón: Cambiar CODE por SQL |
#5
|
|||
|
|||
Estimado SmartZooft: Que bueno que pudo solucionar su inconveniente.
Me intriga saber porque hace uso de la instrucción CAST...Siendo que los campos al parcer son numericos. Bueno lo importante es que funciona...Y si funciona dejalo así... |
#6
|
|||
|
|||
Querido Cloayza porque la funcion sum en componentes tquery arroja valores vacios si no haces la conversion. ¿el porque ? al parecer un bugs
|
#7
|
|||
|
|||
Estimado colega: yo creo que es porque dentro de los valores qué suma debe haber valores Null...motivo por el cual te arroja valores nullos en la sumatoria.
Creo recordar un artículo de otro colega tratando el tema de campos nulos y operaciones matemáticas... Por otro lado, existen funciones que realizan el proceso de chequear si un campo es nulo y retornar un valor por defecto. En firebird existe Coalesce(Valor, valor-defecto-siesnulo). Por ejemplo: Coalesce(Precio, 0) También se puede utilizar la función iif(valor is null, 0, valor). Bueno es solo para cometar...si tu método funciona dejalo así... Saludos cordiales |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Condición para un SELECT | Angel.Matilla | Firebird e Interbase | 3 | 09-02-2018 11:31:44 |
Como usar Update con una condicion where de la resta de dos campos | cvlaso77 | SQL | 5 | 24-04-2012 02:42:57 |
como interactuar entre dos combos <select> | gabrielflowers | PHP | 3 | 19-06-2010 22:50:04 |
Condición Where con resta de 2 campos | Johnny Q | SQL | 6 | 13-01-2006 19:02:57 |
Select con una condicion un poco peculiar | mrmanuel | SQL | 6 | 16-08-2005 13:53:38 |
|