2014-04-24 62 views
0

我需要查詢的幫助。我想按ID字段和日期字段的MIN()分組查詢。不過,我希望未來所有日期的最小值。將來日期的MIN()的SQL查詢

我需要一個子查詢嗎?以下內容將排除將來不會發生的所有記錄。

SELECT CompanyCode, MIN(NextDate) AS NextFollowUpDate 
FROM dbo.LeadNote AS LeadNote 
GROUP BY CompanyCode 
HAVING (MIN(NextDate) > GETDATE()) 
+0

至少消除了'分鐘(nextdate) '從你的字段列表中。您將獲得所有匹配的公司代碼,並與單個MIN()日期值配對。 –

+0

你甚至想要所有記錄,甚至在未來沒有發生?你期望什麼日期? –

+0

@ timo.rieber我只是期待一個空。 – mntyguy

回答

2

只需使用常規的地方:

SELECT CompanyCode, MIN(NextDate) AS NextFollowUpDate 
FROM dbo.LeadNote AS LeadNote 
WHERE NextDate > GETDATE() 
GROUP BY CompanyCode 

如果你需要用空的缺失項目每個公司代碼,你可以做到這一點

SELECT cc.CompanyCode, g.NextFollowUpDate 
FROM 
( 
    SELECT DISTINCT CompanyCode 
    FROM dbo.LeadNote 
) AS cc 
LEFT JOIN 
(
    SELECT CompanyCode, MIN(NextDate) AS NextFollowUpDate 
    FROM dbo.LeadNote 
    WHERE NextDate > GETDATE() 
    GROUP BY CompanyCode 
) AS g ON cc.CompanyCode = g.CompanyCode