2016-08-22 85 views
0

我需要查找一个表中两个字段在指定日期范围内出现多次的所有记录。 我已经使用了下面,它使我能够显示重复,但我需要在一段时间内指定,每当我尝试包括一个日期范围,它开始显示所有记录不只是重复的在sql中显示重复的值

任何帮助将是多不胜感激!

SELECT 
y.ID,y.site,y.machine 
    FROM calls y 
    INNER JOIN (SELECT 
        site,machine, COUNT(*) AS CountOf 
        FROM calls 
        GROUP BY site,machine 
        HAVING COUNT(*)>1 
       ) dt ON y.site=dt.site and y.machine=dt.machine 
+1

我们展示的代码,日期范围 – montewhizdoh

+1

当然只是添加日期条件给你SELECT ... GROUP BY会给你想要的东西:这可以通过,语句如下进行。 – AntDC

回答

0

你必须把日期范围,其中/在这两个SQL语句,以获得您正在寻找的确切记录(内&外)的条件。

SELECT 
y.ID,y.site,y.machine 
    FROM calls y 
    INNER JOIN (SELECT 
        site,machine, COUNT(*) AS CountOf 
        FROM calls 
        WHERE Date BETWEEN StartOfRange AND EndOfRange 
        GROUP BY site,machine 
        HAVING COUNT(*)>1 
       ) dt ON y.site=dt.site and y.machine=dt.machine 
WHERE 
    y.Date BETWEEN StartOfRange AND EndOfRange 
+0

谢谢,这就是我错过了,我只是把它添加到一个SQL语句! –

-1

试试这个:

SELECT y.ID, 
     y.site, 
     y.machine 
FROM calls y 
WHERE y.date BETWEEN ... AND ... 
    AND EXISTS (SELECT x.ID 
       FROM calls x 
       WHERE x.site = y.site 
       AND x.machine = y.machine 
       AND x.date BETWEEN ... AND ... 
       AND x.ID <> y.ID);