Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta productos por dia sumados (https://www.clubdelphi.com/foros/showthread.php?t=69230)

Toni 03-08-2010 12:50:31

Consulta productos por dia sumados
 
Buenos dias,

Tengo una base de datos que esta realizada en Firebird 1.5 y me gustaria poder realizar una consulta que me resuma de una tabla historica la cantidad de referencias DIFERENTES por dia y totalizado la cantidad de ref. diferentes.

La tabla historica tiene la siguiente esctrutura:

Id, Fecha, Articulo, Unidades
1 1/7/10 A 10
2 1/7/10 A 10
3 2/7/10 A 10
4 2/7/10 B 10
5 2/7/10 A 10
6 3/7/10 A 10
7 3/7/10 B 10
8 4/7/10 A 10
9 4/7/10 A 10
10 5/7/10 B 10
--------------------------
Total ref.: 7


He realizado la siguiente consulta que cuenta la cantidad de registro por dia (pero tendria que contar la cantidad de articulos diferentes por dia) y ademas me gustaria que solo me devolviese el total del periodo en lugar de un registro por dia.

select "Fecha", count(*)
from "Historico" A
where "Fecha">=:P_FECHA_INI and "Fecha"<=:P_FECHA_FIN and
group by "Fecha"

Esta consulta la aplicare entre un perido de fechas y realmente lo que me interesa es obtener el resultado total, no el detalle por dia. No encuentro la forma de realizar esto con una consulta, quiza tendre que crear un procedimiento almacenado. Haber si alguien me da una pista. gracias.

Saludos,

Toni 03-08-2010 13:27:37

Utilizando la clausula distinct con el campo articulo en el count ya me calcula correctamente lo que quiero por dia, pero ahora me gustaria poderlo obtener totalizado.

select "Fecha", count(distinct "Articulo")
from "Historico" A
where "Fecha">=:P_FECHA_INI and "Fecha"<=:P_FECHA_FIN and
group by "Fecha"

urixiv 03-08-2010 16:18:18

Hola,
no se si no he entendido lo que pides, pero entiendo que lo que quieres es para un intervalo de fechas el totalizado de cada producto no?
Entonces el Group by hazlo por el producto y no por la fecha.
El rango de fechas lo eliges en el where.

Si no te he entendido mal, de esta manera tendras para cada producto el totalizado (sum, count...)

Espero haberte podido ayudar

Caro 03-08-2010 17:24:14

Hola Toni, nose si he entendido bien tu pregunta, para obtener la cantidad de articulos diferentes por día yo haría el Group By por fecha y articulo:

Código SQL [-]
Select fecha, articulo, count(*) as total
From historico
Where ..................................
Group By fecha, articulo

Y para el total:

Código SQL [-]
Select count(*)
From (Select fecha, articulo, count(*) as total
      From historico
      Where ..................................
      Group By fecha, articulo) Tabla

Saluditos

Toni 06-08-2010 09:59:36

Hola a todos, gracias por las respuestas.

Exacto Caro, eso es lo que quiero saber los articulos diferentes por dia. De hecho con la consulta que puse en el 2º post ya me funcionaba. El problema lo ahora al querer utilizar dicha consulta como una subconsulta. Pues no me deja y me da un error. Alguien sabe si se puede hacer esto en Firebird 1.5? Porque quizas sea ese el problema.

Muchas gracias a todos.

Saludos,


La franja horaria es GMT +2. Ahora son las 04:50:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi