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 使用多字段选择Distinct_Sql_Select_Distinct - Fatal编程技术网

Sql 使用多字段选择Distinct

Sql 使用多字段选择Distinct,sql,select,distinct,Sql,Select,Distinct,我创建了一个按名称搜索事件的查询。结果列出了同名事件的年份(2012年12月10日至2013年30月4日)。我的问题是,如何使我的查询只显示我想要选择的年份中具有相同名称的事件 例如:我只想看看这个月或今年的同名活动 查询: SELECT UserField03, GageNumber, GageType, LastCheckOutDate, CurrentLocation FROM Gages WHERE GageNumber IN (SELECT DISTINC

我创建了一个按名称搜索事件的查询。结果列出了同名事件的年份(2012年12月10日至2013年30月4日)。我的问题是,如何使我的查询只显示我想要选择的年份中具有相同名称的事件

例如:我只想看看这个月或今年的同名活动

查询:

SELECT
    UserField03, GageNumber, GageType, LastCheckOutDate, CurrentLocation 
FROM 
    Gages
WHERE 
    GageNumber IN (SELECT DISTINCT Gages.GageNumber
                   FROM Gages 
                   INNER JOIN Events ON Gages.GageID = Events.GageID
                   WHERE (Name = 'Returned to Cal')
                  ) 
ORDER BY 
    LastCheckOutDate

试着这样做:

SELECT UserField03, GageNumber, GageType, LastCheckOutDate, CurrentLocation
FROM Gages INNER JOIN
(SELECT GageID FROM Events eo WHERE eo.Name 
    IN(SELECT e.Name FROM Events e WHERE e.DateOfEvent BETWEEN '2012-10-12' AND '2013-04-30' AND e.Name='Returned to Cal'
    GROUP BY e.Name HAVING COUNT(*) > 1) AND  e.DateOfEvent BETWEEN '2012-10-12' AND '2013-04-30')  EveAlias
ON Gages.GageID=EveAlias.GageID
在most嵌套子选择中,您将获得事件的名称,该名称满足日期和名称条件,并且其名称在定义的期间内出现多次(
HAVING COUNT(*)>1)
。在外部选择中,您将获得此类事件的
GageId
,因此您可以使用
Gages
执行最终连接