Como hacer esta consulta?

07/07/2006 - 12:24 por jb | Informe spam
Buenas!

Si tengo una tabla llamada VENTAS como:

idVenta fechaVenta vendedor
1 7/7/2006 a
2 7/7/2006 a
3 1/5/2006 b
4 6/4/2006 b
5 5/1/2006 a

Que consulta habria que hacer para obtener el siguiente resultado?

-Total ventas este mes - total ventas hoy - vendedor


o sea, que los totales se hacerlos con un group by en consultas separadas,
pero los dos a la vez ni idea, aunque seguro que no tiene ningun misterio...
alguien sabe como hacerlo?


Gracias y saludos,

JB

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
07/07/2006 - 12:42 | Informe spam
Una posible solución podría ser:

SELECT a.totVentasMes, b.totVentasHoy, a.vendedor
FROM (SELECT SUM(idVenta) totVentasMes, vendedor FROM ventas GROUP BY
vendedor WHERE DATEDIFF (mm, GETDATE(), fechaVenta) = 0) AS a INNER JOIN
(SELECT SUM(idVenta) totVentasHoy, vendedor FROM ventas GROUP BY vendedor
WHERE DATEDIFF (dd, GETDATE(), fechaVenta) = 0) AS b ON a.vendedor b.vendedor


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"jb" escribió en el mensaje
news:ejAdj#
Mostrar la cita
misterio...
Mostrar la cita
#2 jb
07/07/2006 - 12:50 | Informe spam
voy a provar a ver, gracias!

basicamente era para saber si habia algun modo sin subconsultas y cosas
parecidas, porque me tarda varios segundos una consulta que parece no ser
tanto.

Saludos,

Jb


"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:
Mostrar la cita
#3 Carlos Sacristán
07/07/2006 - 13:46 | Informe spam
Te podremos ayudar si posteas el script de creación de la tabla (junto
con sus índices) y el plan de ejecución


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"jb" escribió en el mensaje
news:
Mostrar la cita
vendedor
Mostrar la cita
#4 Alejandro Mesa
07/07/2006 - 13:57 | Informe spam
Trata:

declare @d datetime

set @d = convert(varchar(8), getdate(), 112)

select
vendedor,
sum(
case when fechaVenta >= convert(varchar(6), @d, 112) + '01' and
fechaVenta < dateadd(month, 1, convert(varchar(6), @d, 112) + '01') then 1
else 0 end
) as venta_mes,
sum(
case when fechaVenta >= @d and fechaVenta < dateadd(day, 1, @d) then 1
else 0 end
) as venta_hoy
from
t1
group by
vendedor
go


AMB


"jb" wrote:

Mostrar la cita
#5 jb
07/07/2006 - 14:55 | Informe spam
interesante propuesta, habrá que provarla gracias


"Alejandro Mesa" escribió en el
mensaje news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida