SQL - Mostrar una tabla maestra con los países y sus montos de ventas por cada mes del año

 
Vista:
sin imagen de perfil

Mostrar una tabla maestra con los países y sus montos de ventas por cada mes del año

Publicado por Jose (4 intervenciones) el 23/03/2022 06:26:12
Hola a todos estoy tratando de resolver este ejercicio "Mostrar una tabla maestra con los países y sus montos de ventas por cada mes del año 2017" de la base de datos de northwind pero no logro hacerlo alguien me podria guiar en que estoy fallando, me piden que use case y when para resolver , estoy usando este código

select
sum(E) Enero, sum(F) Febrero, sum(Mr) Marzo,
sum(Ab) Abril, sum(My) Mayo,
sum(Jun) Junio, sum(Jul) Julio,
sum(A) Agosto, sum(st) Setiembre,
sum(oc) Octubre,
sum(n) Noviembre,
sum(d) Diciembre

from (
select Country as Paises, month(o.OrderDate) as Meses, od.Quantity*od.UnitPrice as venta,
case when month(o.OrderDate)= 1 then od.Quantity*od.UnitPrice else 0 end as E,
case when month(o.OrderDate)= 2 then od.Quantity*od.UnitPrice else 0 end as F,
case when month(o.OrderDate)= 3 then od.Quantity*od.UnitPrice else 0 end as Mr,
case when month(o.OrderDate)= 4 then od.Quantity*od.UnitPrice else 0 end as Ab,
case when month(o.OrderDate)= 5 then od.Quantity*od.UnitPrice else 0 end as My,
case when month(o.OrderDate)= 6 then od.Quantity*od.UnitPrice else 0 end as Jun,
case when month(o.OrderDate)= 7 then od.Quantity*od.UnitPrice else 0 end as Jul,
case when month(o.OrderDate)= 8 then od.Quantity*od.UnitPrice else 0 end as A,
case when month(o.OrderDate)= 9 then od.Quantity*od.UnitPrice else 0 end as st,
case when month(o.OrderDate)= 10 then od.Quantity*od.UnitPrice else 0 end as oc,
case when month(o.OrderDate)= 11 then od.Quantity*od.UnitPrice else 0 end as n,
case when month(o.OrderDate)= 12 then od.Quantity*od.UnitPrice else 0 end as d
from Customers c
inner join Orders o on o.CustomerID= c.CustomerID
inner join [Order Details] od on od.OrderID= o.OrderID
where o.OrderDate Between '1997-01-01' And '1997-12-31'
group by Country, month(o.OrderDate),od.Quantity*od.UnitPrice

)a
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Mostrar una tabla maestra con los países y sus montos de ventas por cada mes del año

Publicado por Isaias (1921 intervenciones) el 23/03/2022 17:10:18
Veamos, ejecuta el siguiente query y dime si es el resultado que esperas


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
select Country as Paises, month(o.OrderDate) as Meses, -- od.Quantity*od.UnitPrice as venta,
case when month(o.OrderDate)= 1 then SUM(od.Quantity*od.UnitPrice) else 0 end as Enero,
case when month(o.OrderDate)= 2 then SUM(od.Quantity*od.UnitPrice) else 0 end as Febrero,
case when month(o.OrderDate)= 3 then SUM(od.Quantity*od.UnitPrice) else 0 end as Marzo,
case when month(o.OrderDate)= 4 then SUM(od.Quantity*od.UnitPrice) else 0 end as Abril,
case when month(o.OrderDate)= 5 then SUM(od.Quantity*od.UnitPrice) else 0 end as Mayo,
case when month(o.OrderDate)= 6 then SUM(od.Quantity*od.UnitPrice) else 0 end as Junio,
case when month(o.OrderDate)= 7 then SUM(od.Quantity*od.UnitPrice) else 0 end as Julio,
case when month(o.OrderDate)= 8 then SUM(od.Quantity*od.UnitPrice) else 0 end as Agosto,
case when month(o.OrderDate)= 9 then SUM(od.Quantity*od.UnitPrice) else 0 end as Septiembre,
case when month(o.OrderDate)= 10 then SUM(od.Quantity*od.UnitPrice) else 0 end as Octubre,
case when month(o.OrderDate)= 11 then SUM(od.Quantity*od.UnitPrice) else 0 end as Noviembre,
case when month(o.OrderDate)= 12 then SUM(od.Quantity*od.UnitPrice) else 0 end as Diciembre
from Customers c
inner join Orders o on o.CustomerID= c.CustomerID
inner join [Order Details] od on od.OrderID= o.OrderID
where YEAR(o.OrderDate) = 1997 -- '1997-01-01' And '1997-12-31'
group by Country, month(o.OrderDate)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Mostrar una tabla maestra con los países y sus montos de ventas por cada mes del año

Publicado por jose (4 intervenciones) el 23/03/2022 18:51:49
Lo haré. De antemano gracias por responder
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Mostrar una tabla maestra con los países y sus montos de ventas por cada mes del año

Publicado por Jose (4 intervenciones) el 23/03/2022 20:26:01
Hice corre el código y ejecutó de la siguiente manera, la columna que esta en circulo rojo no deben aparecer, las columnas que están en circulo amarillo deben tener datos no deben estar en cero, de todas maneras gracias por comentar y tratar de ayudarme
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Mostrar una tabla maestra con los países y sus montos de ventas por cada mes del año

Publicado por Isaias (1921 intervenciones) el 24/03/2022 17:48:28
Pues esos círculos, solo tu los ves, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar una tabla maestra con los países y sus montos de ventas por cada mes del año

Publicado por Jose (4 intervenciones) el 25/03/2022 02:16:48
Es cierto, pero no me sale lo que estoy buscando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar