我有图1实例样式的数据和表格。想得到图2的结果。不知道SQL语句该怎么写了,谢谢。
这种问题几百个人问了几千次了,没啥好方法,就是
select where
union select where
group by
sum
要不然就是在代码中进行变换,不在数据查询中实现,
通常问的人都是懂SQL,就是懒,否则写写也就出来了。
如果是用储存过程 就把三个费用统计到三个临时表,再合并成一个表。
sql语句你可以分开三条语句写,再显示对应的结果。
或者 select distinct A.运单编号,(select sum(运费) from 表1 where 运单编号=A.运单编号 and 付款方式=1 ) as 费用1,
(select sum(运费) from 表1 where 运单编号=A.运单编号 and 付款方式=2) as 费用2,
(select sum(运费) from 表1 where 运单编号=A.运单编号 ) as 全部费用 from 表1 A
请使用PIVOT
SELECT 运单编号,[1] AS 付款方式1的运费合计,[2] AS 付款方式2的运费合计,[1]+[2] AS 全部运费合计 FROM(SELECT 运单编号,运费,付款方式 FROM test) T PIVOT(SUM(运费) FOR 付款方式 IN ([1],[2])) AS PVT
SELECT b,C, SUM(d) price INTO #t1 FROM dbo.T_price GROUP BY b,C
SELECT *,F1+F2 hj FROM (
SELECT B, ISNULL([1],0) F1,ISNULL([2],0) F2 FROM #t1 PIVOT (SUM(price) FOR C IN ([1],[2])) t) AS t1