我有一个问题
我必须计算每个分支机构和客户的月销售额(数据来自一个表)
数据应如下所示
我可以写Jan_2019总销售额的查询:
我为Feb_2019创建了一个临时表。我可以使用连接并组合2个表,但是在2月201日,如果添加了新客户,那么当加入表时我会错过新客户,并且由于这个原因,该月的总销售额不匹配。
任何人都可以帮忙吗?
我在下面写了这样的查询
;with a as
(
select branchid, customer, sum(totalsales) as jan_totalsales from tableA
where year = 2019 and month = 1
group by customer, branched
), feb as
(
select branchid, customer, sum(totalsales) as feb_totalsales from tableA
where year = 2019 and month = 2
group by customer, branched
)
select a.branchid, feb.branchid, a.jan_totalsales, feb.feb_totalsales
from a
left join feb on feb.branchid = a.branchid
我必须在临时表中创建它并为march_2019执行此操作
再次,我没有得到新客户,因为我从Jan数据加入。
任何人都可以帮我简单吗?
你在这里是一个有条件的聚合。这应该让你走上正确的道路:
SELECT branchid,
customer,
SUM(CASE WHEN [Year] = 2019] AND [Month] = 1 THEN totalsales ELSE 0 END) AS JanSales,
SUM(CASE WHEN [Year] = 2019] AND [Month] = 2 THEN totalsales ELSE 0 END) AS FebSales,
....
FROM YourTable
GROUP BY branchid,
customer;
如果您不明白这是如何工作的,请询问。在一天结束时,你必须支持SQL,而不是我自己或Stack Overflow上的其他志愿者。