posts - 41,  comments - 40,  trackbacks - 0
          <2007年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿(2)

          隨筆分類(38)

          隨筆檔案(41)

          相冊

          兄弟連

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 56496
          • 排名 - 916

          最新評論

          閱讀排行榜

          評論排行榜

          要查詢Begin與End字段都相同的記錄,出現次數在n次以上的結果集

          有一個數據庫表,結構為:(3個字段)
          Begin?從?字符型
          End?到?字符型
          Time?時間?時間型

          數據:
          Begin?End?Time
          111?222?2002-10-10
          111?333?2002-10-11
          111?444?2002-10-12
          111?222?2002-10-13
          111?222?2002-10-14
          111?333?2002-10-15
          222?111?2002-10-16
          222?333?2002-10-17
          222?555?2002-10-18
          444?222?2002-10-19
          444?222?2002-10-20
          666?222?2002-10-21

          要查詢Begin與End字段都相同的記錄,出現次數在n次以上的結果集

          n=2結果集為:
          Begin?End?Time
          111?222?2002-10-10
          111?333?2002-10-11
          111?222?2002-10-13
          111?222?2002-10-14
          111?333?2002-10-15
          444?222?2002-10-19
          444?222?2002-10-20

          n=3結果集為:
          Begin?End?Time
          111?222?2002-10-10
          111?222?2002-10-13
          111?222?2002-10-14

          不知這種情況的SQL語句如何寫?
          ---------------------------------------------------------------
          USE Northwind
          GO

          IF EXISTS( SELECT * FROM dbo.sysobjects WHERE id=object_id( N'[Flight]' ) AND OBJECTPROPERTY( id, N'IsUserTable' )=1 )
          DROP TABLE [Flight]
          GO

          CREATE TABLE [Flight]
          (
          ? [Begin] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL,
          ? [End] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL,
          ? [Time] [datetime] NULL
          ) ON [PRIMARY]
          GO

          INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '111', '222', '2002-10-10' )
          INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '111', '333', '2002-10-11' )
          INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '111', '444', '2002-10-12' )
          INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '111', '222', '2002-10-13' )
          INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '111', '222', '2002-10-14' )
          INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '111', '333', '2002-10-15' )
          INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '222', '111', '2002-10-16' )
          INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '222', '333', '2002-10-17' )
          INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '222', '555', '2002-10-18' )
          INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '444', '222', '2002-10-19' )
          INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '444', '222', '2002-10-20' )
          INSERT INTO [Flight]( [Begin], [End], [Time] ) VALUES( '666', '222', '2002-10-21' )
          GO

          SELECT * FROM [Flight]
          GO


          -- 方法一

          DECLARE @n int? -- 出現次數
          SET @n=2

          SELECT *
          FROM [Flight] T1
          WHERE ( SELECT COUNT(*)
          ??????? FROM [Flight] T2
          ??????? WHERE T2.[Begin]=T1.[Begin] AND T2.[End]=T1.[End] )>=@n
          ORDER BY T1.[Begin], T1.[End], T1.[Time]



          -- 方法二

          DECLARE @n int? -- 出現次數
          SET @n=2

          SELECT *
          FROM [Flight] T1
          WHERE EXISTS ( SELECT 1
          ?????????????? FROM ( SELECT [Begin], [End]
          ????????????????????? FROM [Flight]
          ????????????????????? GROUP BY [Begin], [End]
          ????????????????????? HAVING COUNT(*)>=@n ) T2
          ?????????????? WHERE T2.[Begin]=T1.[Begin] AND T2.[End]=T1.[End] )
          ORDER BY T1.[Begin], T1.[End], T1.[Time]
          posted on 2007-08-24 05:20 NeedJava 閱讀(1396) 評論(0)  編輯  收藏 所屬分類: SQL
          主站蜘蛛池模板: 杭州市| 奇台县| 西畴县| 芜湖市| 建德市| 桐梓县| 赤城县| 万载县| 平远县| 海晏县| 宣武区| 图们市| 汉源县| 田东县| 盐城市| 资溪县| 县级市| 广汉市| 镇康县| 玛多县| 铜梁县| 建始县| 潢川县| 望都县| 和田县| 崇州市| 远安县| 和龙市| 荔波县| 潜江市| 柏乡县| 隆安县| 灯塔市| 高平市| 剑阁县| 囊谦县| 西乌珠穆沁旗| 清水河县| 桃江县| 石屏县| 镇沅|