2015-03-31 24 views
0

的是編寫此查詢的最佳方式:SQL集團通過在沒有行都有價值

SELECT ID FROM表 WHERE 「的ID沒有行有一個創建日期>‘1/1/2012’ 「 GROUP BY ID

總之,我只希望看到分組的ID,每一個行都有一個創建日期>‘1/1/2012’

回答

2

使用having條款,並期待在最大創建日期:

SELECT ID 
FROM table 
GROUP BY ID 
HAVING MAX(CreatedDate) <= '2012-01-01' 
+0

did you mean Min(createddate)> 1/1/2012 – Randall 2015-03-31 20:24:07

+0

隨着MIN(),完美的作品。謝謝大家! – user1760769 2015-03-31 20:37:21

+0

@RandallMathews。 。 。這取決於你是通過第二句還是第三句來解決問題。是的,無論是「MIN()」還是「MAX()」,都取決於OP真正想要的內容。 – 2015-04-01 18:03:17

0
select * from (table where date > '2012-01-01') group by id 
+0

這仍返回具有日期<'2012-01-01'的「ID」記錄。我只想要ID的地方,他們的行都沒有日期<'2012-01-01' – user1760769 2015-03-31 20:29:49

+0

where子句應該工作,雖然group by將不起作用,因爲select中沒有使用匯總函數。有條款將做你想要的。 – DCR 2015-04-02 01:58:08