小弟又来向各位大侠求救了!
比如说现在有表TAB我想查询表中所有vid小于等于3的而且id还不能重复的数据,也就是说我查询出来的数据是类似TAB2表一样的,请各位大侠给我指条明路吧!
TAB
id vid name text
1 1 a aa
2 1 b bb
3 1 c cc
1 2 d dd
2 3 e ee
TAB2
id vid name text
1 2 d dd
2 3 e ee
3 1 c cc
...全文
676打赏收藏
一个分组查询的语句问题!
小弟又来向各位大侠求救了! 比如说现在有表TAB我想查询表中所有vid小于等于3的而且id还不能重复的数据,也就是说我查询出来的数据是类似TAB2表一样的,请各位大侠给我指条明路吧! TAB id vid name text 1 1 a aa 2 1 b bb 3 1 c cc 1 2 d dd 2 3 e ee TAB2 id vid name text 1 2 d dd 2 3 e ee 3 1 c cc
declare @b table(id varchar(20),vid varchar(10),name varchar(10),text varchar(10) )
insert @b
select '1','1','a','aa'
union all
select '2','1','b','bb'
union all
select '3','1','c','cc'
union all
select '1','2','d','dd'
union all
select '2','3','e','ee'
SELECT a.* FROM @b a
INNER JOIN
(SELECT id,vid=max(vid) FROM @b GROUP BY id) b
ON a.id=b.id and a.vid=b.vid ORDER BY 1
id vid name text
-------------------- ---------- ---------- ----------
1 2 d dd
2 3 e ee
3 1 c cc