Ayuda con select

30/04/2005 - 01:39 por Alonso | Informe spam
Con una tabla de ventas resumidas (anio, mes, vendido)

tengo que hacer un sp que me de el total vendido en un rango de meses (estos
meses pueden abarcar mas de un año).

Ej. EXEC p_RESUMEN VENTAS 2004,2,2005,2

Deberia devolverme las ventas entre febrero del 2004 y febrero del 2005
ambos incluidos.

Se que debo usar un SUM , lo que no tengo claro es la condicion del WHERE.

Si pueden darme una ayudita:

select sum(vendido) as ventas from ventas where ?

Preguntas similare

Leer las respuestas

#1 Mario Peña
30/04/2005 - 01:55 | Informe spam
Hola, podrías concatenar el año y el mes para que quede por ejemplo: 200402
y 200502, teneindo en cuenta que cuando el mes es de un solo digito hay que
colocarle un cero, para que el mes quede de dos digitos, quedaria algo asi:

SELECT SUM(VENDIDO) AS VENTAS FROM VENTAS WHERE
CAST(ANO AS VARCHAR) +
CASE WHEN MES < 10 THEN
'0' + CAST(MES AS VARCHAR)
ELSE CAST(MES AS VARCHAR)
END >= 200402
AND
CAST(ANO AS VARCHAR) +
CASE WHEN MES < 10 THEN
'0' + CAST(MES AS VARCHAR)
ELSE CAST(MES AS VARCHAR)
END <= 200502

Te sirve esta?

Saludos,
Mario.


"Alonso" escribió en el mensaje
news:
Con una tabla de ventas resumidas (anio, mes, vendido)

tengo que hacer un sp que me de el total vendido en un rango de meses


(estos
meses pueden abarcar mas de un año).

Ej. EXEC p_RESUMEN VENTAS 2004,2,2005,2

Deberia devolverme las ventas entre febrero del 2004 y febrero del 2005
ambos incluidos.

Se que debo usar un SUM , lo que no tengo claro es la condicion del WHERE.

Si pueden darme una ayudita:

select sum(vendido) as ventas from ventas where ?



Respuesta Responder a este mensaje
#2 Ricardo Passians
30/04/2005 - 02:28 | Informe spam
Aunque yo te sugeriría también tenerlos tipo caracter para que puedas hacer
concatenación de ano+mes, si ya lo tienes numericos el where puedes armarlo
asi:

CREATE proc p_ResumenVentas (@ano1 smallint, @mes1 tinyint, @ano2 smallint,
@mes2 tinyint)
AS select sum(vendido) as ventas from ventas
where (VENTAS.ano>@ano1 or (VENTAS.ano=@ano1 and VENTAS.mes>=@mes1)) and
(VENTAS.ano<@ano2 or (VENTAS.ano=@ano2 and VENTAS.mes<=@mes2))





"Alonso" wrote in message
news:
Con una tabla de ventas resumidas (anio, mes, vendido)

tengo que hacer un sp que me de el total vendido en un rango de meses


(estos
meses pueden abarcar mas de un año).

Ej. EXEC p_RESUMEN VENTAS 2004,2,2005,2

Deberia devolverme las ventas entre febrero del 2004 y febrero del 2005
ambos incluidos.

Se que debo usar un SUM , lo que no tengo claro es la condicion del WHERE.

Si pueden darme una ayudita:

select sum(vendido) as ventas from ventas where ?



Respuesta Responder a este mensaje
#3 Alejandro Mesa
30/04/2005 - 23:24 | Informe spam
Trata:

create procedure dbo.usp_RESUMEN_VENTAS
@sy int,
@sm int,
@ey int,
@em int,
@sum_vendido int output
as
set nocount on

select @sum_vendido = sum(vendido)
from dbo.ventas
where ((anio * 100) + mes) between ((@sy * 100) + @sm) and ((@ey * 100) +
@em)

return @@error
go

declare @sv int
declare @rv int

EXEC @rv = dbo.usp_RESUMEN_VENTAS 2004, 2, 2005, 2, @sv output

print @sv
go


AMB

"Alonso" wrote:

Con una tabla de ventas resumidas (anio, mes, vendido)

tengo que hacer un sp que me de el total vendido en un rango de meses (estos
meses pueden abarcar mas de un año).

Ej. EXEC p_RESUMEN VENTAS 2004,2,2005,2

Deberia devolverme las ventas entre febrero del 2004 y febrero del 2005
ambos incluidos.

Se que debo usar un SUM , lo que no tengo claro es la condicion del WHERE.

Si pueden darme una ayudita:

select sum(vendido) as ventas from ventas where ?




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida