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#
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


Respuesta Responder a este mensaje
#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:
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#
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






Respuesta Responder a este mensaje
#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:
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:
> 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#
>> 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
>>
>>
>
>


Respuesta Responder a este mensaje
#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:

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



Respuesta Responder a este mensaje
#5 jb
07/07/2006 - 14:55 | Informe spam
interesante propuesta, habrá que provarla gracias


"Alejandro Mesa" escribió en el
mensaje news:
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:

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



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida