Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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_Sql Server - Fatal编程技术网

SQL-选择多个/所有列,但排除一个或两个特定列中的重复数据?

SQL-选择多个/所有列,但排除一个或两个特定列中的重复数据?,sql,sql-server,Sql,Sql Server,我有一个表(检查),有以下几列 检查ID(PK)、公寓ID(FK)、房屋ID(FK)、检查日期 我想检索过去三个月内没有检查过的所有房屋和公寓的列表,以及上次检查的日期 没有房子或公寓会出现一次以上,所以我不希望在ApartmentID或HouseID中有任何重复项 SELECT ApartmentID, HouseID, InspectionDate FROM Inspection WHERE InspectionDate <= '2018-07-18'; 选择公寓ID、房屋ID、检查

我有一个表(检查),有以下几列

检查ID(PK)、公寓ID(FK)、房屋ID(FK)、检查日期

我想检索过去三个月内没有检查过的所有房屋和公寓的列表,以及上次检查的日期

没有房子或公寓会出现一次以上,所以我不希望在ApartmentID或HouseID中有任何重复项

SELECT ApartmentID, HouseID, InspectionDate
FROM Inspection
WHERE InspectionDate <= '2018-07-18';
选择公寓ID、房屋ID、检查日期
从检查

在InspectionDate中,可以使用聚合:

SELECT ApartmentID, HouseID, MAX(InspectionDate)
FROM Inspection
GROUP BY ApartmentID, HouseID
HAVING MAX(InspectionDate) <= '2018-07-18';

您可以使用聚合:

SELECT ApartmentID, HouseID, MAX(InspectionDate)
FROM Inspection
GROUP BY ApartmentID, HouseID
HAVING MAX(InspectionDate) <= '2018-07-18';

奇怪的是,你有两个想法,
apartmentId
houseId
。这些在您的数据中是如何使用的?奇怪的是,您有两个想法,
apartmentId
houseId
。这些在您的数据中是如何使用的?这是一个完美的工作方式,也是一个简单而优雅的解决方案。非常感谢戈登!为了回答您关于两个独立ID的问题,有两个独立的表,一个表包含具有特定属性的房屋,另一个表包含具有稍微不同属性集的公寓。Gordon的观点是,如果其中一个列始终为空,那么更好的模型应该是InspectionID、InspectionType(公寓或房屋),这是一个完美的解决方案,也是一个简单而优雅的解决方案。非常感谢戈登!为了回答您关于两个独立ID的问题,有两个独立的表,一个表包含具有特定属性的房屋,另一个表包含具有稍微不同属性集的公寓。Gordon的观点是,如果其中一个列始终为空,那么更好的模型应该是InspectionID、InspectionType(公寓或房屋),身份证件