求一sql 列转行

gwf25sz 2011-08-01 12:12:01
SELECT * FROM dbo.S_MRP_Part
SELECT * FROM dbo.S_MRP_DayCounts

ID Part CreateDate
----------- -------------------------------------------------- -----------------------
1 00-00129 2011-07-29 00:00:00.000

(1 行受影响)

ID HID MRPDate Counts
----------- ----------- -------------------------------------------------- ----------------------
1 1 Total 99
2 1 06 5 2011 12:00AM 0
3 1 06 6 2011 12:00AM 22
4 1 2011-08-01 33

(3 行受影响)



希望能够根据 MRPDate进行列转行:
HID Part Total 06 5 2011 12:00A 06 6 2011 12:00AM 2011-08-01
----------- ----------- ------ -------------------- -------------------- ----------
1 00-00129 99 0 22 33


注:MRPDate 是不固定的(会有特殊情况如Total),所以不能像 语文 数学 那样。。。。
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gwf25sz 2011-08-01
  • 打赏
  • 举报
回复
顺便问下二楼,
declare @sql varchar(8000)

这个8000什么意思,
如果我有 几百万 条数据会不会有问题?
gwf25sz 2011-08-01
  • 打赏
  • 举报
回复
貌似要的就是2楼的,谢谢~!
AcHerat 2011-08-01
  • 打赏
  • 举报
回复
ID HID MRPDate Counts
----------- ----------- -------------------------------------------------- ----------------------
1 1 Total 99
2 1 06 5 2011 12:00AM 0
3 1 06 6 2011 12:00AM 22
4 1 2011-08-01 33


楼主你这是几列啊!
快溜 2011-08-01
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
set @sql = 'select a.hid,b.Part '
select @sql = @sql + ' , max(case when MRPDate=''' + MRPDate + ''' then Counts else null end) [' + MRPDate + ']'
from S_MRP_DayCounts
set @sql = @sql + ' from S_MRP_DayCounts a,S_MRP_Part b where a.hid=b.id group by a.hid,b.Part'
exec(@sql)
-晴天 2011-08-01
  • 打赏
  • 举报
回复
用动态行转列.

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧