关于SQL中列变行的问题:
如下:原表结构:
项目编号 成本类型 金额
001 400001 1000
001 400002 1000
001 400003 1000
001 400004 1000
002 400001 1000
002 400002 1000
002 400003 1000
002 400004 1000转换后表结构:
项目编号 400001 400002 400003 4000004
001 (金额) (金额) (金额) (金额)
002 (金额) (金额) (金额) (金额)
如何实现??????????????
妈的行转列问题:
思路................
如下:原表结构:
项目编号 成本类型 金额
001 400001 1000
001 400002 1000
001 400003 1000
001 400004 1000
002 400001 1000
002 400002 1000
002 400003 1000
002 400004 1000转换后表结构:
项目编号 400001 400002 400003 4000004
001 (金额) (金额) (金额) (金额)
002 (金额) (金额) (金额) (金额)
如何实现??????????????
妈的行转列问题:
思路................
解决方案 »
- 正则表达式 变量问题。
- visio颜色设置问题。。
- 大家帮忙啊!这周五做不出来,老板就把我开了! 初试、面试、复试 好不容易找个这么个差事啊!郁闷中。。。。。。
- 新手请教C#中怎么使用treeview控件,急急急!!!
- 点击了按钮,提示添加成功了,可是数据库里没有数据添加进去
- 请问安装vs.net为什么提示找不到frontpage服务器扩展?
- 以下是读取网络图片数据流代码,我想读取本地的图片数据流,如何改?谢谢!
- 小问题:怎样用简单的方法将dataset中的几张表合并成一张表
- 请问:这样的sql语句怎么写?(sql server/ado.net)
- C# 关于委托与事件的应用错误
- 新人问题 SqlDataAdapter 的fill 方法出错
- 菜鸟提问:用C#怎样获得Excel文件某个单元格的公式?
Name Subject Result
张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 数学 92
李四 物理 82想变成
姓名 语文 数学 物理
张三 80 90 85
李四 85 92 82declare @sql varchar(4000)
set @sql = 'select Name'
select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result end) ['+Subject+']'
from (select distinct Subject from CJ) as a
select @sql = @sql+' from test group by name'
exec(@sql)
问题已解决
谢谢参与
我的100分啊
SELECT 项目编号,
SUM(CASE 成本类型 WHEN 400001 THEN 金额 ELSE 0 END) AS 400001,
SUM(CASE 成本类型 WHEN 400002 THEN 金额 ELSE 0 END) AS 400002,
SUM(CASE 成本类型 WHEN 400003 THEN 金额 ELSE 0 END) AS 400003,
SUM(CASE 成本类型 WHEN 400004 THEN 金额 ELSE 0 END) AS 400004
FROM Northwind.dbo.Pivot
GROUP BY 项目编号参见sqlserver联机丛书,“交叉表查询”
SUM(CASE 成本类型 WHEN 400001 THEN 金额 ELSE 0 END) AS 400001
应该改为:
SUM(CASE 成本类型 WHEN '400001' THEN 金额 ELSE 0 END) AS 400001注意....
不过用Distinct应该很慢啊