PDA

Ver la Versión Completa : Consulta Sql para los 7 dias de la semana


Ricsato
26-05-2005, 21:05:49
Saludos a todos, me gustaria que alguien me auxilie, necesito hacer una consulta de ventas, en donde debo desglozar las ventas de una semana de una fecha dada por dias, con la siguiente sentencia me saca un resumen global de todas las ventas por vendedor, creandome y sumandome dos columnas de acuerdo al tipo de venta.


SELECT epl_nombre, SUM(tablas.ventas_normal) AS Normales,
SUM(tablas.Ventas_empresas) AS Empresas
FROM (SELECT CASE not_venta WHEN '0' THEN not_importe ELSE 0
END AS ventas_normal,
CASE not_venta WHEN '1' THEN not_importe ELSE 0 END
AS ventas_empresas, epl_nombre
FROM NOTAVENTA
WHERE emp_codigo = '004') tablas
GROUP BY epl_nombre


La pregunta es, como puedo sacar las ventas de cada dia de la semana, obteniendo una columna para cada dia con la suma de sus respectivas ventas por dia y vendedor, utilizando la sentencia anterior? o si existe alguna otra mejor manera de resolver esta consulta?, se los agradecere.

Ricardo.
Saludos desde Mexicali, B.C., en Mexico

droguerman
26-05-2005, 23:33:23
que gestor de BD utilizas??

Ricsato
27-05-2005, 00:55:07
utilizo SQL server 7

ramiretor
28-05-2005, 00:48:59
Hola:
La consulta es similar que la que tienes, pero en el group by necesitas poner la fecha que corresponda:

Select campofecha, epl_nombre, sum(....
................
group by fecha, epl_nombre


Yo no conozco ese motor pero debe funcionar

Saludos y espero te sirva

marcoszorrilla
28-05-2005, 14:34:25
Entiendo que habría que añadir el rango de fechas para ajustarse a una semana.


Where Fecha Between xxx And yy

Un Saludo.

Ricsato
28-05-2005, 20:17:31
Asi es tienen razon en lo que me recomiendan, pero realmente yo estaba buscando alguna instruccion en SQL que me sacara los totales pero por "dia", no totales a los 7 dias de la semana, ni especificando tampoco una sola fecha (un dia). Gracias por su ayuda, lo que tuve que hacer, fue hacerlo por codigo, aunque mas extenso de lo que me imaginaba:

QCorteCaja.First;
While not QCorteCaja.EOF do begin
if qSemana.FieldByName('Epl_Nombre').AsString = 'NOMBRE EMPLEADO then
Begin
qSemana.FieldByName('Lunes').AsFloat:= qSemana.FieldByName
('Lunes').AsFloat + qCorteCaja.FieldByName
('Ventas_Normal').AsFloat;
..........Martes..........
..............................., etc.
end;
end;

Lo que hice fue urtilizando el Query qCortecaja, vacie sus datos condicionandolos por dia en otro nuevo y en blanco (Qsemana) y asi ya obtuve lo que necesitaba.