当前位置:主页>仓库管理软件> 列表

关于MS SQL 2000中的行列转换的问题! 找管家婆财务软件

进销存软件版1楼: 关于MS SQL 2000中的行列转换的问题!
我有一张表tab1,记录如下:
id name good_name sl
1 张三 g1 10
2 张三 g2 10
3 李四 g1 10
4 李四 g3 10
5 王五 g2 10
6 王五 g4 10
。。。。。。
等等,不太多,但name,good_name 字段都是动态的,根据查询出来的结果而定,没有规律,
现在要变成如表tab2的格式:
name g1 g2 g3 g4 g5 .......
张三 10 10
李四 10 10
王五 10 10
......
在ACCESS中可以实现,但在MS SQL 2000中如何实现请指教,在线等待,一定给分。

2楼: http://www.delphibbs.com/delphibbs/dispq.asp?lid=3380159 如管家婆财务软件

3楼: 可以用临时表或SP

4楼: 交叉查询

5楼: select name,sum(case when good_name=''g1'' then sl else null end) as g1,
sum(case when good_name=''g2'' then sl else null end) as g2,
sum(case when good_name=''g3'' then sl else null end) as g3,
..
from tab1
group by name

6楼: CASE语句就可以。。。。
如楼上的。。

进销存软件版7楼: 但我的 good_name 名并不知道有多少个,事先也不知道具体是什么名呀

8楼: DECLARE @SQL VARCHAR(8000)
set @sql = ''select name''
select @sql = @sql + '',sum(case good_name when ''''''+good_name+'''''' then sl end) [''+good_name+'']''
from (select distinct good_name from tab1) as a
select @sql = @sql+'' from tab1 group by name''
exec(@sql)

9楼: 我先试试,谢谢!

10楼: to: protossgffnxk
用你的方法我已经实现了,谢谢!但我对这个语句看的是懂非懂的,你能不能帮我解释一下,分给了。

11楼: 多人接受答案了。