SQL的行转列问题
2004-11-29 14:39
567 查看
create table abc
(
student varchar(50),
class varchar(50),
grade int
)
INSERT INTO abc
SELECT '孙小美','数学',10 UNION ALL
SELECT '孙小美','语文',20 UNION ALL
SELECT '孙小美','英语',30 UNION ALL
SELECT '阿土伯','数学',40 UNION ALL
SELECT '阿土伯','语文',50 UNION ALL
SELECT '阿土伯','英语',60 UNION ALL
SELECT '小叮铛','数学',70 UNION ALL
SELECT '小叮铛','语文',80 UNION ALL
SELECT '小叮铛','英语',90
SELECT
student,
MAX(数学) AS 数学,
MAX(语文) AS 语文,
MAX(英语) AS 英语
FROM
(
SELECT
student,
CASE class WHEN '数学' THEN grade END AS 数学,
CASE class WHEN '语文' THEN grade END AS 语文,
CASE class WHEN '英语' THEN grade END AS 英语
FROM abc
) AS a
GROUP BY student
select 代码,进货单位,
"西药"=(select 让利金额 from abc where 药类 ='西药' and 代码=t1.代码),
"中成药"=(select 让利金额 from abc where 药类 ='中成药' and 代码=t1.代码),
"医材 "=(select 让利金额 from abc where 药类 ='医材' and 代码=t1.代码),
"中草药"=(select 让利金额 from abc where 药类 ='中草药' and 代码=t1.代码),
"合计"=(select sum(药类) from abc where 代码=t1.代码 group by 代码)
from abc t1 group by 代码,进货单位
(
student varchar(50),
class varchar(50),
grade int
)
INSERT INTO abc
SELECT '孙小美','数学',10 UNION ALL
SELECT '孙小美','语文',20 UNION ALL
SELECT '孙小美','英语',30 UNION ALL
SELECT '阿土伯','数学',40 UNION ALL
SELECT '阿土伯','语文',50 UNION ALL
SELECT '阿土伯','英语',60 UNION ALL
SELECT '小叮铛','数学',70 UNION ALL
SELECT '小叮铛','语文',80 UNION ALL
SELECT '小叮铛','英语',90
SELECT
student,
MAX(数学) AS 数学,
MAX(语文) AS 语文,
MAX(英语) AS 英语
FROM
(
SELECT
student,
CASE class WHEN '数学' THEN grade END AS 数学,
CASE class WHEN '语文' THEN grade END AS 语文,
CASE class WHEN '英语' THEN grade END AS 英语
FROM abc
) AS a
GROUP BY student
select 代码,进货单位,
"西药"=(select 让利金额 from abc where 药类 ='西药' and 代码=t1.代码),
"中成药"=(select 让利金额 from abc where 药类 ='中成药' and 代码=t1.代码),
"医材 "=(select 让利金额 from abc where 药类 ='医材' and 代码=t1.代码),
"中草药"=(select 让利金额 from abc where 药类 ='中草药' and 代码=t1.代码),
"合计"=(select sum(药类) from abc where 代码=t1.代码 group by 代码)
from abc t1 group by 代码,进货单位
相关文章推荐
- 数据库设计经验 [转]
- 一个简单而又灵活的数据库操作类
- 更改SQLServer服务器时间
- Oracle9i的JOB问题
- Jsp连接数据库大全
- Oracle诊断案例-Job任务停止执行[最终版]
- 利用数据库日志恢复数据到时间点的操作
- Oracle学习笔记
- 精妙SQL语句(转帖)
- 使用存储过程进行数据库操作
- MySQL用户管理
- 数据库优化策略(六)
- 数据库优化策略(五)
- 数据库优化策略(三)
- utf-8乱码title作怪
- 浅析数据源在JDBC中的应用
- SQL语句导入导出大全
- 在.NET中调用Oracle9i存储过程经验总结
- 在.NET中调用Oracle9i存储过程经验总结
- 使用存储过程进行数据库操作