tabla de ventas interanuales

26/07/2007 - 10:57 por Oscar Serna | Informe spam
Hola, estoy intentando hacer una consulta de ventas interanuales, tengo una
tabla con todo el histórico de ventas y la disposición de la tabla es la
siguiente:

CLIENTE MES AÑO TOTAL

(Hay más campos pero pongo solo esto para no liarlo más)

lo que quiero conseguir es que en cada mes me muestre en el TOTAL las ventas
de dicho mes más los últimos once meses agrupados de la manera más sencilla
posible. por ej.

CLIENTE MES AÑO TOTAL

aaaaa 1 2007 (aquí tendría que ir la suma de enero
de 2007 más la suma de febrero a diciembre de 2006)
bbbbb 5 2007 (aquí tendría que ir la suma de enero a
mayo de 2007 más junio a diciembre de 2006)

(y así sucesivamente)

Agradecería mucho vuestra ayuda ya que es un tema que me urge mucho y me he
quedado estancado.
NOTA: lo he llegado a conseguir pero haciendo una consulta por mes, como los
datos luego tengo que exportarlos a Excel se me complica mucho la cosa,
estaría bien hacerlo en la misma consulta, aunque sea una por año, pero no
por mes). Muchas gracias de antemano.

Oscar.

Preguntas similare

Leer las respuestas

#1 Maxi
26/07/2007 - 14:36 | Informe spam
Oscar, has probado con subconsultas?


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Oscar Serna" escribió en el mensaje
news:
Hola, estoy intentando hacer una consulta de ventas interanuales, tengo
una tabla con todo el histórico de ventas y la disposición de la tabla es
la siguiente:

CLIENTE MES AÑO TOTAL

(Hay más campos pero pongo solo esto para no liarlo más)

lo que quiero conseguir es que en cada mes me muestre en el TOTAL las
ventas de dicho mes más los últimos once meses agrupados de la manera más
sencilla posible. por ej.

CLIENTE MES AÑO TOTAL

aaaaa 1 2007 (aquí tendría que ir la suma de enero
de 2007 más la suma de febrero a diciembre de 2006)
bbbbb 5 2007 (aquí tendría que ir la suma de enero
a mayo de 2007 más junio a diciembre de 2006)

(y así sucesivamente)

Agradecería mucho vuestra ayuda ya que es un tema que me urge mucho y me
he quedado estancado.
NOTA: lo he llegado a conseguir pero haciendo una consulta por mes, como
los datos luego tengo que exportarlos a Excel se me complica mucho la
cosa, estaría bien hacerlo en la misma consulta, aunque sea una por año,
pero no por mes). Muchas gracias de antemano.

Oscar.

Respuesta Responder a este mensaje
#2 Alejandro Mesa
26/07/2007 - 15:04 | Informe spam
Hola Oscar,

Cuando se postea este tipo de problemas, es recomendable incluir la
estructura de las tablas involucradas, incluyendo indices y restricciones,
asi como data de ejemplo en forma de sentencias INSERT, mas los resultados
esperados. La ayuda debe ser mutua, no crees?

lo que quiero conseguir es que en cada mes me muestre en el TOTAL las ventas



En cada mes de que año, corriente, todo el año actual, hasta el mes en curso?

Trata:

select
a.clienteid,
a.nombre,
sum(b.cantidad * b.precio_unitario) as total
from
(
select distinct
c.clienteid,
c.nombre,
month(hv.fecha_orden) as m,
year(hv.fecha_orden) as y
from
dbo.hist_de_ventas as hv
inner join
dbo.clientes as c
on hv.clienteid = c.clienteid
where
year(hv.fecha_orden) = year(getdate())
) as a
inner join
dbo.hist_de_ventas as b
on b.clienteid = a.clienteid
and b.fecha_orden >= dateadd(month, -11, ltrim(a.y) + right('00' +
ltrim(a.m), 2) + '01')
and b.fecha_ordeen < dateadd(month, 1, ltrim(a.y) + right('00' +
ltrim(a.m), 2) + '01')
group by
a.clienteid,
a.nombre
go


AMB






"Oscar Serna" wrote:

Hola, estoy intentando hacer una consulta de ventas interanuales, tengo una
tabla con todo el histórico de ventas y la disposición de la tabla es la
siguiente:

CLIENTE MES AÑO TOTAL

(Hay más campos pero pongo solo esto para no liarlo más)

lo que quiero conseguir es que en cada mes me muestre en el TOTAL las ventas
de dicho mes más los últimos once meses agrupados de la manera más sencilla
posible. por ej.

CLIENTE MES AÑO TOTAL

aaaaa 1 2007 (aquí tendría que ir la suma de enero
de 2007 más la suma de febrero a diciembre de 2006)
bbbbb 5 2007 (aquí tendría que ir la suma de enero a
mayo de 2007 más junio a diciembre de 2006)

(y así sucesivamente)

Agradecería mucho vuestra ayuda ya que es un tema que me urge mucho y me he
quedado estancado.
NOTA: lo he llegado a conseguir pero haciendo una consulta por mes, como los
datos luego tengo que exportarlos a Excel se me complica mucho la cosa,
estaría bien hacerlo en la misma consulta, aunque sea una por año, pero no
por mes). Muchas gracias de antemano.

Oscar.



Respuesta Responder a este mensaje
#3 Eclat
27/07/2007 - 09:15 | Informe spam
Guau, hay que ver lo que se aprende...

Salu2

Alejandro Mesa escribió:
Hola Oscar,

Cuando se postea este tipo de problemas, es recomendable incluir la
estructura de las tablas involucradas, incluyendo indices y restricciones,
asi como data de ejemplo en forma de sentencias INSERT, mas los resultados
esperados. La ayuda debe ser mutua, no crees?

lo que quiero conseguir es que en cada mes me muestre en el TOTAL las ventas



En cada mes de que año, corriente, todo el año actual, hasta el mes en curso?

Trata:

select
a.clienteid,
a.nombre,
sum(b.cantidad * b.precio_unitario) as total
from
(
select distinct
c.clienteid,
c.nombre,
month(hv.fecha_orden) as m,
year(hv.fecha_orden) as y
from
dbo.hist_de_ventas as hv
inner join
dbo.clientes as c
on hv.clienteid = c.clienteid
where
year(hv.fecha_orden) = year(getdate())
) as a
inner join
dbo.hist_de_ventas as b
on b.clienteid = a.clienteid
and b.fecha_orden >= dateadd(month, -11, ltrim(a.y) + right('00' +
ltrim(a.m), 2) + '01')
and b.fecha_ordeen < dateadd(month, 1, ltrim(a.y) + right('00' +
ltrim(a.m), 2) + '01')
group by
a.clienteid,
a.nombre
go


AMB






"Oscar Serna" wrote:

Hola, estoy intentando hacer una consulta de ventas interanuales, tengo una
tabla con todo el histórico de ventas y la disposición de la tabla es la
siguiente:

CLIENTE MES AÑO TOTAL

(Hay más campos pero pongo solo esto para no liarlo más)

lo que quiero conseguir es que en cada mes me muestre en el TOTAL las ventas
de dicho mes más los últimos once meses agrupados de la manera más sencilla
posible. por ej.

CLIENTE MES AÑO TOTAL

aaaaa 1 2007 (aquí tendría que ir la suma de enero
de 2007 más la suma de febrero a diciembre de 2006)
bbbbb 5 2007 (aquí tendría que ir la suma de enero a
mayo de 2007 más junio a diciembre de 2006)

(y así sucesivamente)

Agradecería mucho vuestra ayuda ya que es un tema que me urge mucho y me he
quedado estancado.
NOTA: lo he llegado a conseguir pero haciendo una consulta por mes, como los
datos luego tengo que exportarlos a Excel se me complica mucho la cosa,
estaría bien hacerlo en la misma consulta, aunque sea una por año, pero no
por mes). Muchas gracias de antemano.

Oscar.



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