一个数据库sql问题
表一是我现在有的表样,同事要求改成表二的格式。
表一是一张明细表,最后一列是对之前的月份合计列。
到表二,原表一合计列根据项目转到第一行中。
大虾中哪位知道什么方法能达到。
------解决方案--------------------一条语句搞定:
SELECT *
FROM (SELECT NULL 时间,
NULL 编号,
'项目合计' 摘要,
(SELECT SUM(合计) FROM 表) 合计,
(SELECT SUM(合计) FROM 表 WHERE 项目名称 = '项目1') 项目1,
(SELECT SUM(合计) FROM 表 WHERE 项目名称 = '项目2') 项目2,
0 序号
FROM dual
UNION
SELECT 时间,
编号,
摘要,
合计,
decode(项目名称, '项目1', 合计, NULL) 项目1,
decode(项目名称, '项目2', 合计, NULL) 项目2,
编号 序号
FROM 表)
ORDER BY 序号