2013-01-24 55 views
1

示例表:過濾列基於在一個領域日期爲當前周,過去幾周,以及未來幾周

列標題)大家的訪談---(行標題)採訪請求

列標題)採訪的數本週 - (行值)計數的狀態都定於本週所有的日期:「採訪請求」如4

列標題)下週採訪的數 - (行值)計數有狀態下週安排所有的日期:「採訪請求」,例如6

首先,我」我想喜歡我的臨時表,似乎我不能使用圖片,因爲我是一個新成員。

我也是使用reportbuilder和sql的新手,一直試圖弄清楚如何計算報表中某些日期範圍之間的日期數量。

就像在本週所謂的「本週採訪次數」的臨時字段中所述,我希望根據日期字段計算本週,之後一週,之前一週等所有日期。然後,我打算打破這張桌子,以顯示一個人的所有采訪時間。

我遇到的問題是會有很多日期跨越不同的月/日。所以林不知道我怎麼可以用DateDiff或其他日期特徵來表示這個,因爲表格是爲了當前採訪的實時表示。

是我正在嘗試甚至可能使用報告生成器?如果是這樣,任何提示都會很棒,如果不是的話,那麼謝謝你花時間看看我的問題。

的要求數據集字段:

[用戶名](用戶表),[InterviewStatus](採訪表),[DateUpdated](採訪表)

這些都是將在所使用的主要的報告

+0

Microsoft SQL Server? –

+0

是2012版本,即時通訊使用報告服務,讓我使用報告生成器。 – adminics

+0

你的數據集是怎樣的?用你的數據集字段更新你的問題會有所幫助。 – eestein

回答

0

對於本週開始和下一天結束之間的日期,您可以使用where子句中來自採訪表過濾的通用select語句。

然後,如果日期落在本週或下一週內,那麼這兩個字段的和就是1。

編輯: 下面的例子將給出本週內的日期的數量。取自another question

Select InterviewStatus, 
     Sum(Case when DateUpdated >= DATEADD(dd, -(DATEPART(dw, GETDATE()) -1), GETDATE()) 
        AND DateUpdated < CAST(CONVERT(VARCHAR(10), DATEADD(dd, (8 - DATEPART(dw, GETDATE())), GETDATE()), 120) AS DATETIME) 
       Then 1 
       Else 0 end) 
      as NumberInCurrentWeek 
From InterviewTable 
Where DateUpdated >= DATEADD(dd, -(DATEPART(dw, GETDATE()) -1), GETDATE()) 
     AND DateUpdated < CAST(CONVERT(VARCHAR(10), DATEADD(dd, (8 - DATEPART(dw, GETDATE())), GETDATE()), 120) AS DATETIME) 
Group by InterviewStatus 

這只是需要調整到你的確切情況。例如改變8乘以7將捕捉當前的兩週。

然後根據查詢生成一個簡單的表格。

+0

對不起,對於回覆遲了,感謝回覆會給它一個調整,以適應它我需要創建的報告。 – adminics

+0

只是想知道如果我想在3周內的範圍內,我將如何使用此代碼表示此?我只需要將8改爲6號? – adminics

+0

8將成爲8 + 14. – glh

1

如果您只是要計算每個字段的列數,則可以使用sql語句COUNT(),請參閱COUNT()

你可以像這樣常見的查詢:

SELECT COUNT(fieldName1), COUNT(fieldName2), ... , COUNT(fieldNamen) FROM <tableName> 

也儘量展現你的代碼,使您的問題將更加明確。

+0

那麼代碼將是: SELECT [tblInterviews.Date] FROM [tblInterviews],其中[tblInterviews.Status] =「面試」請求 從那裏我想算落在本週的日期,那麼接下來字段在右邊我想要計算下週計劃的所有采訪(不包括當前一週) – adminics