分组查询语句
表A
mid mname
11 aa
22 bb
33 cc
表B
aid, aname
1 a
2 b
3 c
4 d
5 e
表C
mid aid value
11 1 v1
11 2 v2
22 2 v3
.....
要得到的结果是:
表A.name, 表B.aname(a), 表B.aname(b), ......(将表B的行比如5行作为列 得到 表C的值 组成一个表)
aa v1 v2 ......
可能我表述的不是很清楚,有点乱,请高手指教
[解决办法]
没说明白还是我没理解?
[解决办法]
create table A(id int,[name] varchar(10))insert into Aselect 1 ,'a' union allselect 2 ,'b'gocreate table B(mid int,id int,[value] varchar(10))insert into Bselect 11 ,1 ,'v1' union allselect 11 ,2 ,'v2' union allselect 22 ,1 ,'v3' union allselect 22 ,2 ,'v4'godeclare @sql varchar(8000)set @sql = 'select mid'select @sql = @sql + ',max(case id when '+ltrim(id)+' then [value] else '''' end) as [name('+[name]+')]'from Aselect @sql = @sql + ' from B group by mid'exec(@sql)drop table A,B/***************mid name(a) name(b)----------- ---------- ----------11 v1 v222 v3 v4(2 行受影响)
[解决办法]