从销售表中获取客户,12个月每月的销售额加载到同一行中
客户 1月 2月 3月 4月 ……
客户1 100 200 200 200 ……
一月份有多笔订单(20,30,50)总额100,2,3,4月份也有多笔总额200
我希望的是sum()查出每月的总额,再展示出来结果
SELECT SUM(一月),SUM(二月) FROM TABLE 查出来的结果添加到表中
SQL server 中SUM(一月),SUM(二月)怎么组成集合列(客户,SUM(一月),SUM(二月),……)
union?
@大神带带我吧: 举个例子 INSERT INTO `销售表`(`一月份`,`二月份`) SELECT SUM(`一月份`) AS `一月份`,SUM(`二月份`) AS `二月份` FROM `销售表`; 就是将一月份 二月份的合计出来再插入到这张表中 我不知道你要表达的是不是这个意思
@河畔: 我是希望能直接通过通过查询获取每个月份的销售总额和客户名称组成一个临时表,然后直接调用数据
@大神带带我吧: 这个不是差不多么 SELECT SUM(`一月份`) AS `一月份`,SUM(`二月份`) AS `二月份` INTO #临时表 FROM `销售表`;
@大神带带我吧: 一个#是局部 2个##是全局 这个百度一下一个挺多的
@河畔: 现在的问题是:怎么把12个月的数据拼成集合,来查找
1月份销售数据:
SELECT sum(TaxationAmount) as amount,CustName
FROM CRM_OrderVW
where OrderTime >= CONVERT(char(5),getdate(),120)+'1-1' and OrderTime<CONVERT(char(5),getdate(),120)+'2-1'
……
最终我想要的结果就是 客户 一月 二月 三月 …… 12月的列表数据
如果是问SQL语句的话,自己搜索一下 SQL pivot吧。
先group by 进行聚合,再用行转列,不同数据库的行转接语法不同
没毛病啊,这个和四则运算一样的,加减乘除,你每个都会了就行。
– 爱编程的大叔 6年前你就当已经合计好了,然后行转列。sum group by + pivot 也就两个语法而已。