SQL - Consulta transacciones múltiples

 
Vista:

Consulta transacciones múltiples

Publicado por Javier (4 intervenciones) el 02/10/2014 00:31:23
Buen día amigos,
Alguien que quiera ayudarme en una consulta en SQL, la cual consiste de la siguiente manera:
Tengo un tabla con las transacciones históricas don tengo, entre otros, los campos codigo_cliente, fecha_transaccion, monto_transaccion. Los datos que necesito extraer es la suma del monto_transaccion de tres días consecutivos, por cliente, cuyo valor sea mayor o igual a 10000, por ejemplo:

El cliente "A" en la fecha 1 realizó una transacción por un monto de 3500; en la fecha 2 por un monto de 2500; y en la fecha 3 por un monto de 5000. Por lo tanto debo obtener las tres transacciones, ya que suman 10000. Adicionalmente, si la fecha 4 hay una transaccion por 2500, de este mismo cliente, también debo obtener las transacciones de las fechas 2, 3 y 4, puesto que también suman 10000. Siguiendo con el ejemplo, si la fecha 5 el monto de la transaccion es de 1000, NO puedo obtener en el resultado de la consulta las transacciones de las fechas 3, 4 y 5, puesto que los montos de las tres transacciones suman menos de 10000. Sin embargo, si en la fecha 6, este mismo cliente tiene una transacción por 6500, el resultado de la consulta debe incluir las transacciones de las fechas 4, 5 y 6, ya que suman 10000.

Observaciones:
Las fechas de las transacciones deben ser consecutivas, es decir, si en la fecha 7, el cliente "A" no realizó ninguna transacción, y en las fecha 8 y fecha 9 realizó transacciones de 2500 y 1500, respectivamente, las transacciones de la fecha 6, 8 y 9 suman 10000, sin embargo, el resultado de la consulta no debe considerarlas,nada que no se realizaron en fechas consecutivas.
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
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta transacciones múltiples

Publicado por Isaias (1921 intervenciones) el 02/10/2014 04:36:44
¿En que motor de base de datos?
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

Consulta transacciones múltiples

Publicado por Javier (4 intervenciones) el 02/10/2014 23:21:54
Gracias por responder tan pronto.

En realidad me interesa la sentencia de sql, aunque nosotros trabajamos con el de oracle, mySql y toad para realizar consultas a la BD.

Gracias nuevamente.
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
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta transacciones múltiples

Publicado por Isaias (1921 intervenciones) el 02/10/2014 23:47:06
SELECT codigo_cliente, SUM(monto_transaccion) as Importe
FROM tutabla
WHERE fecha_transaccion > 'tufechainicial' and fecha_transaccion <= 'tufechafinal'
GROUP BY codigo_cliente
HAVING SUM(monto_transaccion) >= 1000

El formato de tus fechas debe ser YYYYMMDD
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

Consulta transacciones múltiples

Publicado por Javier (4 intervenciones) el 03/10/2014 00:37:30
Muy agradecido contigo por responder tan pronto.

En esta consulta obtengo los montos por cliente, me es de utilidad para identificarlos. Sin embargo, como podría obtener las transacciones por separado, es decir, cada uno de los registro que conforman las transacciones que sumaron esos 10000 o mas.

Por otro lado, de que manera podría controlar que las fechas, de las transacciones que suman los 10000, son consecutivas?, especialmente cuando tengo las transacciones de un mes completo.

Gracias nuevamente.

Saludos cordiales.
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
Imágen de perfil de Isaias Islas
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta transacciones múltiples

Publicado por Isaias Islas (1921 intervenciones) el 03/10/2014 03:43:44
Bueno, seria algo asi

SELECT codigo_cliente, SUM(monto_transaccion) as Importe, count(*) as Transacciones
FROM tutabla
WHERE fecha_transaccion > 'tufechainicial' and fecha_transaccion <= 'tufechafinal'
GROUP BY codigo_cliente
HAVING SUM(monto_transaccion) >= 1000

En cuanto a las fechas, pues tienes una INICIAL y una FINAL, ¿Cuál es expliciatamente tu duda?
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

Consulta transacciones múltiples

Publicado por Javier (4 intervenciones) el 04/10/2014 01:08:24
Nuevamente, muchas gracias por tu colaboración.

He extraído estos valores de las transacciones de un cliente "A" donde NT = Numero de transaccion, CL = Codigo del Cliente, FT = Fecha Transacción y Monto

NT CL FT Monto
1 A 1 3500
7 A 2 2500
13 A 3 5000
24 A 4 2500
31 A 5 1000
50 A 6 6500
72 A 8 2500
112 A 9 3500
210 A 10 1000

Las transacciones cuyo resultado me debería dar la consulta SQL serían las transacciones de las fechas 1, 2 y 3, porque suman 10000 o mas; las transacciones de las fechas 2, 3 y 4, porque suman 10000; las transacciones de las fechas 4, 5 y 6 porque suman 10000; Pero no debe tomar las transacciones de las fechas 5, 6 y 8, aunque sumen 10000, no son fechas consecutivas; de igual manera, se deben tomas las transacciones de las fechas 6, 8 y 9, no son consecutivas. Finalmente, las transacciones de las fechas 8, 9 y 10, no deben incluirse, porque no suman 10000.

Por tanto, el resultado de la consulta SQL, debería ser: la siguiente tabla:

NT CL FT Monto
1 A 1 3500
7 A 2 2500
13 A 3 5000
24 A 4 2500
31 A 5 1000
50 A 6 6500

Espero haberme explicado mejor. Gracias por tu ayuda.

Saludos cordiales
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