【问题标题】:Select Distinct with multi field选择具有多字段的不同
【发布时间】:2013-05-16 21:24:25
【问题描述】:

我创建了一个按名称搜索事件的查询。结果列出同名事件的年份(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

【问题讨论】:

    标签: sql select distinct


    【解决方案1】:

    试试这样的:

    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
    

    在最嵌套的子选择中,您将获得事件的名称,它满足日期和名称条件并且其名称出现多次(HAVING COUNT(*) > 1) 在定义的时间段内。在外部选择中,您将获得GageId of此类事件,因此您可以使用Gages 执行最终连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      相关资源
      最近更新 更多