还是昨天的有关问题,这次只是:如何将SQL语句返回结果出现在同一行
还是昨天的问题,这次只是:怎么将SQL语句返回结果出现在同一行?
这是昨天的一个查询语句提示:只能返回一条记录。这一问题通过sum()解决了。
又出现的问题是:同一个部门输出时出现3行:
部门 建工材料 油脂 汽油 劳保用品 。。。
项目部 5
项目部 10
办公室 36
办公室 0
办公室 2640
------解决方案--------------------
SELECT a.部门, SUM([ 建工材料 ]) as [ 建工材料 ] ,sum([油脂 ]) as [油脂 ]............
group by a.部门
------解决方案--------------------
这是昨天的一个查询语句提示:只能返回一条记录。这一问题通过sum()解决了。
又出现的问题是:同一个部门输出时出现3行:
部门 建工材料 油脂 汽油 劳保用品 。。。
项目部 5
项目部 10
办公室 36
办公室 0
办公室 2640
SELECT a.部门,
(select sum(金额) from 材料分析 where 部门=a.部门 and CARGOTYPE_NAME=a.CARGOTYPE_NAME and CARGOTYPE_NAME="建工材料") AS 建工材料,
(select sum(金额) from 材料分析 where 部门=a.部门 and CARGOTYPE_NAME=a.CARGOTYPE_NAME and CARGOTYPE_NAME="油脂") AS 油脂,
(select sum(金额) from 材料分析 where 部门=a.部门 and CARGOTYPE_NAME=a.CARGOTYPE_NAME and CARGOTYPE_NAME="汽油") AS 汽油,
(select sum(金额) from 材料分析 where 部门=a.部门 and CARGOTYPE_NAME=a.CARGOTYPE_NAME and CARGOTYPE_NAME="劳保用品") AS 劳保用品,
(select sum(金额) from 材料分析 where 部门=a.部门 and CARGOTYPE_NAME=a.CARGOTYPE_NAME and CARGOTYPE_NAME="其它") AS 其它
FROM [SELECT 部门, CARGOTYPE_NAME FROM 材料分析 GROUP BY 部门, CARGOTYPE_NAME; ]. AS a;
------解决方案--------------------
SELECT a.部门, SUM([ 建工材料 ]) as [ 建工材料 ] ,sum([油脂 ]) as [油脂 ]............
group by a.部门
------解决方案--------------------
SELECT a.部门,
SUM(CASE CARGOTYPE_NAME WHEN "建工材料" THEN 金额 ELSE 0 END) AS 建工材料,
SUM(CASE CARGOTYPE_NAME WHEN "油脂" THEN 金额 ELSE 0 END) AS 油脂,
SUM(CASE CARGOTYPE_NAME WHEN "劳保用品" THEN 金额 ELSE 0 END) AS 劳保用品,
SUM(CASE CARGOTYPE_NAME WHEN "其它" THEN 金额 ELSE 0 END) AS 其它
FROM 材料分析 a GROUP BY 部门