2013-04-23 76 views
0

後,我有一個表,前3項是像這樣:SQL查詢次數,如果DATEDIFF分組

name | jobnum | startdate | enddate 

name1 | 1  | 15/2/1990 | 11/3/1990 
name2 | 2  | 12/2/1991 | 13/2/1991 
name1 | 3  | 15/1/1997 | 11/2/1998 

我需要將它們分組,以便

它會告訴

name | #jobs | # of times job ends before 30 days 

我知道如何顯示前2列。但最後一個讓我困惑。

SELECT Table1.name, Count(Table1.start) AS #jobs 
FROM Table1 
GROUP BY Table1.name 

謝謝。

回答

0

嘗試以下,這是未經測試,我相信你可以減去日期的訪問,但如果不使用相同的理論,但DATEDIFF函數....

SELECT Table1.name, Count(Table1.start) AS #jobs, 
    sum(IIF(Table1.enddate - Table1.Startdate < 30,1,0)) As LessThan30Days 
FROM Table1 
GROUP BY Table1.name 
+0

謝謝你,似乎有工作。我假設30,1,0帳戶的日/月/年的差異? – 2013-04-23 03:46:18

+0

公式的語法是對IIF公式的結果進行求和,30是天數(標準),1是滿足標準(<30)時要返回的內容,如果不滿足則爲0,因此,每次日期差異小於30時,它加1,如果是30天或更多天差異,則加0。 – Simon1979 2013-04-23 03:57:27