还是昨天的有关问题,这次只是:如何将SQL语句返回结果出现在同一行

还是昨天的问题,这次只是:怎么将SQL语句返回结果出现在同一行?
这是昨天的一个查询语句提示:只能返回一条记录。这一问题通过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  部门