2015-08-18 59 views
0

我確信有一個簡單的解決方案,但我正在試圖弄清楚它在我的腦海裏。有時候,額外的眼睛可以節省一天的時間!選擇最大日期,然後在WHERE子句中使用它

SELECT S.StoreId, MAX(AL.ActivityDate) AS LastActivity FROM Stores S 
INNER JOIN dbo.ActivityLog AL ON AL.StoreID = S.StoreID 
WHERE S.StoreID IN (SELECT StoreID FROM Stores WHERE Status = 2) 
AND AL.ActivityDate < DATEADD(DAY, -180, GETDATE()) 
GROUP BY S.StoreID 
ORDER BY LastActivity 

我的目標:拉出所有MAX活動日期大於6個月(180天)的商店。這一點代碼似乎沒有做到這一點...任何想法?

謝謝!

+0

使用'Having'爲'LastActivity'過濾 –

+0

請標記與您正在使用的數據庫你的問題。 –

回答

2

我認爲你可以做你想要group byhaving什麼:

select al.StoreId, MAX(al.ActivityDate) AS LastActivity 
from dbo.ActivityLog al 
group by al.StoreId 
having MAX(al.ActivityDate) < DATEADD(day, -100, getdate()); 
+0

謝謝戈登,這就像一個魅力!我想我錯過了一些小事。這將允許我在2分鐘內標記爲「答案」!感謝你的時間! – akaWizzmaster