当前位置: 代码迷 >> Sql Server >> 求1语句!
  详细解决方案

求1语句!

热度:52   发布时间:2016-04-24 09:11:51.0
求一语句!!!!
本帖最后由 qq_23887913 于 2015-04-19 11:49:09 编辑
姓名        年度
牟志琼 2012
牟志琼 2012
牟志琼 2013
牟志琼 2013
牟志琼 2014
牟志琼 2014
陈辉 2012
陈辉 2013
陈绩 2012
陈绩 2014
马银武 2013
马银武 2013
想要年度字段里出现两个不同年度以上的记录,大概是这样的结果:
姓名        年度
牟志琼 2012
牟志琼 2013
牟志琼 2014
陈辉 2012
陈辉 2013
陈绩 2012
陈绩 2014

谢谢各位了!!!!!
------解决思路----------------------

DECLARE @t_TB TABLE ([Name] NVARCHAR(10),[YR] INT);
INSERT INTO @t_TB VALUES 
('A','2012'),
('A','2012'),
('A','2013'),
('A','2013'),
('A','2014'),
('A','2014'),
('B','2012'),
('B','2013'),
('C','2012'),
('C','2014'),
('D','2013'),
('D','2013');

SELECT DISTINCT T.NAME,T.YR
 FROM @t_TB T 
 INNER JOIN (   SELECT A.NAME
                            FROM (
                                          SELECT DISTINCT [Name] ,[YR] 
    FROM @t_TB ) A
                                          GROUP BY A.NAME
                                         HAVING COUNT(A.NAME)>1 ) B ON T.NAME = B.NAME
/*
NAME       YR
---------- -----------
A          2012
A          2013
A          2014
B          2012
B          2013
C          2012
C          2014

*/



------解决思路----------------------

SELECT DISTINCT A.NAME,A.YR
FROM @t_TB A
WHERE EXISTS( SELECT 1 FROM @t_TB B WHERE B.NAME = A.NAME AND B.YR <> A.YR )
  相关解决方案