同题:
SELECT a.日期, a.部门, a.操作员,
(select 金额 from 材料分析 where CARGOTYPE_NAME="建工材料") AS 建工材料,
(select 金额 from 材料分析 where CARGOTYPE_NAME="油脂") AS 油脂,
(select 金额 from 材料分析 where CARGOTYPE_NAME="汽油") AS 汽油,
(select 金额 from 材料分析 where CARGOTYPE_NAME="劳保用品") AS 劳保用品,
(select 金额 from 材料分析 where CARGOTYPE_NAME="工具") AS 工具,
(select 金额 from 材料分析 where CARGOTYPE_NAME="电料") AS 电料,
(select 金额 from 材料分析 where CARGOTYPE_NAME="化工") AS 化工,
FROM FROM 材料分析 GROUP BY 日期,部门, 操作员, CARGOTYPE_NAME, 金额, 分类;
------解决方案--------------------
SELECT 日期, 部门, 操作员,
(select MAX(金额) from 材料分析 where CARGOTYPE_NAME="建工材料") AS 建工材料,
(select MAX(金额) from 材料分析 where CARGOTYPE_NAME="油脂") AS 油脂,
(select MAX(金额) from 材料分析 where CARGOTYPE_NAME="汽油") AS 汽油,
(select MAX(金额) from 材料分析 where CARGOTYPE_NAME="劳保用品") AS 劳保用品,
(select MAX(金额) from 材料分析 where CARGOTYPE_NAME="工具") AS 工具,
(select MAX(金额) from 材料分析 where CARGOTYPE_NAME="电料") AS 电料,
(select MAX(金额) from 材料分析 where CARGOTYPE_NAME="化工") AS 化工,
FROM 材料分析 GROUP BY 日期,部门, 操作员;
------解决方案--------------------
你的子查询存在有多条记录的情况
------解决方案--------------------
把 金额 改成 SUM(金额) 试试
------解决方案--------------------
SELECT 日期, 部门, 操作员,
(select sum(金额) from 材料分析 where CARGOTYPE_NAME="建工材料") AS 建工材料,
(select sum(金额) from 材料分析 where CARGOTYPE_NAME="油脂") AS 油脂,
(select sum(金额) from 材料分析 where CARGOTYPE_NAME="汽油") AS 汽油,
(select sum(金额) from 材料分析 where CARGOTYPE_NAME="劳保用品") AS 劳保用品,
(select sum(金额) from 材料分析 where CARGOTYPE_NAME="工具") AS 工具,
(select sum(金额) from 材料分析 where CARGOTYPE_NAME="电料") AS 电料,
(select sum(金额) from 材料分析 where CARGOTYPE_NAME="化工") AS 化工,
FROM 材料分析 GROUP BY 日期,部门, 操作员;
如果你是要求和的話需要加上sum,否則
select 金额 from 材料分析 where CARGOTYPE_NAME="化工" 可能會返回多行記錄,另外從你的語句的邏輯上看,是否求金額也是要限定日期部門合操作員,如果是的話要在子查詢中將條件也加上