首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

分组查询语句解决方法

2012-03-31 
分组查询语句表Amidmname11aa22bb33cc表Baid, aname1a2b3c4d5e表Cmidaidvalue111v1112v2222v3.....要得到

分组查询语句
表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 ......

可能我表述的不是很清楚,有点乱,请高手指教

[解决办法]
没说明白还是我没理解?
[解决办法]

SQL code
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 行受影响)
[解决办法]
探讨

我用的是MySQL, 还有两个关联表; 请问:
必须要用存储过程的语句么?

[解决办法]
再写个where
[解决办法]
select 列1, 列2 ,... from where
[解决办法]
我的理解,是说建立一个表C,表C的数据是表B对应数据,以及表B中id对应表A的数据,是么?希望能帮到你
select mid,(select name from 表A join 表B where A.id=B.id ) as namea,name from 表B

热点排行
Bad Request.