怎么行变成列,列变成行啊?

Googuy 2006-11-04 07:53:12
有这一样个表,保存3周的产品数据,怎么行变成列,列变成行啊?

Product_Code Week Qty
A001 1 34
A001 2 4678
A001 3 56
A002 1 42
A002 2 362
A002 3 434
A003 1 3234
A003 2 467
A003 3 46
. . .
. . .
. . .

变成:

Product_Code W1 W2 W3
A001 34 4678 56
A002 42 362 434
A003 3234 467 46
. . . .
. . . .
. . . .
...全文
164 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
haiqin1015 2006-12-07
  • 打赏
  • 举报
回复
设有张学生成绩表(CJ)如下
Name Subject Result
张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 数学 92
李四 物理 82

想变成
姓名 语文 数学 物理
张三 80 90 85
李四 85 92 82

declare @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)

行列转换--合并

有表A,
id pid
1 1
1 2
1 3
2 1
2 2
3 1
如何化成表B:
id pid
1 1,2,3
2 1,2
3 1

创建一个合并的函数
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+cast(pid as varchar) from 表A where id=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go

--调用自定义函数得到结果
select distinct id,dbo.fmerg(id) from 表A
Googuy 2006-11-04
  • 打赏
  • 举报
回复
http://topic.csdn.net/T/20051223/20/4478319.html
这个没用啊,我这里不能确定是一年中的哪几个周啊
Ritt 2006-11-04
  • 打赏
  • 举报
回复
http://topic.csdn.net/T/20051223/20/4478319.html

看看好用不?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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