2013-05-16 79 views
0

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

例如:我只想看看本月或今年同名的事件。

查询:

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 

回答

0

尝试这样:

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 

在你得到事件的名称最为嵌套子查询,这satisifies日期和名称条件,他的名字出现超过一次(HAVING COUNT(*) > 1)在定义的时间段内,在外部选择您获得GageId这样的事件,因此您可以执行最后加入Gages

相关问题