Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta de ultimos registros con suma

Estas en el tema de Consulta de ultimos registros con suma en el foro de Mysql en Foros del Web. Saludos... y de antemano gracias por sus respuestas. Tengo una tabla con los campos: id | codprod | cantv | 1 A1000 2 2 B2000 ...
  #1 (permalink)  
Antiguo 23/05/2011, 17:39
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Consulta de ultimos registros con suma

Saludos... y de antemano gracias por sus respuestas.

Tengo una tabla con los campos:

id | codprod | cantv |
1 A1000 2
2 B2000 5
3 A1000 4
4 E5000 7
5 A1000 5
6 B2000 3

Lo que necesito saber es si es posible hacer que una consulta SELECT me muestre
los ultimos registros de codprod = "A1000" que la SUMA de cantv de estos registros sea >= 7

Al ejecutar la consulta:
SELECT * FROM tb1 WHERE codprod = "A1000" ORDER BY id DESC;

resulta:

id | codprod | cantv |
5 A1000 5
3 A1000 4
1 A1000 2

lo q yo quiero es solo me muestre:

id | codprod | cantv |
5 A1000 5
3 A1000 4

osea: mi valor referencial es 7
con el primer registro: 7 > 5 me faltan 2
q los completo con el 2do reg: 2 < 4
es por eso que solo necesito q me muestre los dos ultimos, porque con eso me basta, y ya no los demas regitros.

Espero me haya explicado bien.....
  #2 (permalink)  
Antiguo 24/05/2011, 11:01
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 10 meses
Puntos: 96
Respuesta: Consulta de ultimos registros con suma

Saludos!

Pensaría que con una sentencia no lo podrías realizar, deberías manipular los registros con el lenguaje que estés realizando la aplicación, te quedaría mas sencillo.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 24/05/2011, 13:02
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 11 meses
Puntos: 447
Respuesta: Consulta de ultimos registros con suma

Hola niko7700:

Creo que esta consulta te serviría, hice algunas pruebas cambiando los valores de la tabla y parece que funciona.

Código MySQL:
Ver original
  1. mysql> CREATE TABLE tb1 (id int, codprod varchar(10), cantv int);
  2. Query OK, 0 rows affected (0.08 sec)
  3.  
  4. mysql> INSERT INTO tb1 VALUES
  5.     -> (1, 'A1000', 2),
  6.     -> (2, 'B2000', 5),
  7.     -> (3, 'A1000', 4),
  8.     -> (4, 'E5000', 7),
  9.     -> (5, 'A1000', 5),
  10.     -> (6, 'B2000', 3);
  11. Query OK, 6 rows affected (0.05 sec)
  12. Records: 6  Duplicates: 0  Warnings: 0
  13.  
  14. mysql> SELECT * FROM TB1;
  15. +------+---------+-------+
  16. | id   | codprod | cantv |
  17. +------+---------+-------+
  18. |    1 | A1000   |     2 |
  19. |    2 | B2000   |     5 |
  20. |    3 | A1000   |     4 |
  21. |    4 | E5000   |     7 |
  22. |    5 | A1000   |     5 |
  23. |    6 | B2000   |     3 |
  24. +------+---------+-------+
  25. 6 rows in set (0.00 sec)
  26.  
  27. mysql> select id, codprod, cantv from
  28.     -> (
  29.     -> SELECT id, codprod, cantv,
  30.     -> (
  31.     -> select sum(cantv)
  32.     -> from tb1 T2 where T2.id >= T1.id and T2.codprod = T1.codprod
  33.     -> ) acumulado
  34.     -> FROM tb1 T1
  35.     -> WHERE T1.codprod = "A1000"
  36.     -> ) T3
  37.     -> WHERE acumulado-cantv < 7
  38.     -> ORDER BY id DESC;
  39. +------+---------+-------+
  40. | id   | codprod | cantv |
  41. +------+---------+-------+
  42. |    5 | A1000   |     5 |
  43. |    3 | A1000   |     4 |
  44. +------+---------+-------+
  45. 2 rows in set (0.00 sec)

Igual y existe alguna forma más óptima de obtener el mismo resultado, o tal como lo recomienda Nano_, hacerlo por programación. Es cuestión de que hagas pruebas para ver si te sirve.

Saludos
Leo.
  #4 (permalink)  
Antiguo 31/05/2011, 16:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Respuesta: Consulta de ultimos registros con suma

Gracias.. por sus respuestas...

Como lo tengo ahora esta hecho en el vb.net
y desde ahi obtengo los resultados... lo que deseo es hacerlo mas rápido...

desde el mismo mysql...

me parece que funciona LEO... gracias lo probare y lo comento...

Etiquetas: select, sum
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:23.