Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
返回不需要的行的SQL查询_Sql - Fatal编程技术网

返回不需要的行的SQL查询

返回不需要的行的SQL查询,sql,Sql,我试图处理从select语句返回的一些行 目前,我收到了多行回执,因为我询问的人已经搬走了内部住宿(同一地点内的房屋),但我只想在该地点本身发生变化的情况下归还他们 例如,我得到 +------------+-------+------------+ | LocationlD | Site | MovedDate | +------------+-------+------------+ | 1 | York | 01/01/2011 | | 3 | Y

我试图处理从select语句返回的一些行

目前,我收到了多行回执,因为我询问的人已经搬走了内部住宿(同一地点内的房屋),但我只想在该地点本身发生变化的情况下归还他们

例如,我得到

+------------+-------+------------+
| LocationlD | Site  | MovedDate  |
+------------+-------+------------+
|          1 | York  | 01/01/2011 |
|          3 | York  | 02/01/2011 |
|          2 | Leeds | 05/05/2011 |
+------------+-------+------------+
在本例中,我希望看到的是,如果第一个York条目,然后是Leeds条目,因为站点没有更改。

您可以使用:

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;
或者从2005年开始使用MSSQL

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;

下次,请按照上面的评论(关于如何发布问题),指定一个数据库(通常SQL是不够的),并发布您尝试过的内容。

您是如何查询数据库的?向我们展示您的查询、数据库结构、示例数据和预期输出。那么我们就可以提供帮助了。请阅读“如何创建一个最小的、完整的、可验证的示例”停止发布图片。。。以文本形式发布