2017-07-03 140 views
-4

我想操縱select語句返回的一些行。SQL查詢返回不需要的行

目前我收回多行作爲我查詢的人,已經移動了內部住宿(同一網站內的房屋),但我只想返回它們,如果網站本身發生了變化。

比如我正在..

+------------+-------+------------+ 
| LocationlD | Site | MovedDate | 
+------------+-------+------------+ 
|   1 | York | 01/01/2011 | 
|   3 | York | 02/01/2011 | 
|   2 | Leeds | 05/05/2011 | 
+------------+-------+------------+ 

在這個例子中,一切我都希望看到,如果第一個紐約條目,然後利茲條目,網站並沒有改變。

+0

您是如何查詢數據庫的? – skm

+0

向我們顯示您的查詢,數據庫結構,樣本數據和預期輸出。然後我們能夠提供幫助。 – HoneyBadger

+1

請閱讀「如何創建最小,完整和可驗證的示例」https://stackoverflow.com/help/mcve –

回答

0

您可以使用:

SELECT A.LOCATIONLD, A.SITE, A.MOVEDDATE 
FROM YOURTABLE A 
INNER JOIN (SELECT SITE, MIN(MOVEDDATE) AS MOVEDDATE_MIN 
      FROM YOURTABLE 
      GROUP BY SITE) B ON A.SITE = B.SITE AND A.MOVEDDATE = B.MOVEDDATE_MIN; 

或者

SELECT LOCATIONLD, SITE, MOVEDDATE 
FROM (
    SELECT LOCATIONLD, SITE, MOVEDDATE 
    , ROW_NUMBER() OVER (PARTITIONED BY SITE ORDER BY MOVEDDATE DESC) AS RN 
    FROM YOURTABLE 
    ) A 
WHERE RN =1; 

PLS,下一次在MSSQL 2005年,按照上面的意見(如何發佈問題),指定一個數據庫(通常是SQL不能夠),併發布你也嘗試過。