我有一個問題與我之前發佈的此問題有關: -在兩個日期之間搜索周/明月記錄計數(數字)和周/月的StartDate + EndDate(日期時間)
Daily/Weekly/Monthly Record Count Search via StoredProcedure
我想有周爲基礎的和月爲基礎的呼叫的計數,日用基礎問題解決了。
發行數量@ 1:通話周爲基礎的計數和啓動日期和星期
我已經搜查了啓動日期和星期的結束日期,包括他們的電話的個人計數以及的結束日期在下面提到的查詢中。但問題是我無法在單個表中得到結果,儘管我使用了臨時表(#TempTable +#TempTable2)。請在這方面幫助我。
注意:表創建註釋爲執行多次。
--CREATE TABLE #TempTable(StartDate datetime,EndDate datetime,CallCount numeric(18,5))
--CREATE TABLE #TempTable2(StartDate datetime,EndDate datetime,CallCount numeric(18,5))
DECLARE @StartDate datetime,@EndDate datetime,@StartDateTemp1 datetime,@StartDateTemp2 datetime,@EndDateTemp datetime,@Period varchar(50);
SET @StartDate='1/1/2010'; SET @EndDate='2/28/2010';
SET @[email protected]; SET @StartDateTemp2=DATEADD(dd, 7, @StartDate);
SET @Period='Weekly';
IF (@Period = 'Weekly')
BEGIN
WHILE ((@StartDate <= @StartDateTemp1) AND (@StartDateTemp2 <= @EndDate))
BEGIN
IF((@StartDateTemp1 < @StartDateTemp2) AND (@StartDateTemp1 != @StartDateTemp2))
BEGIN
SELECT
convert(varchar, @StartDateTemp1, 106) AS 'Start Date',
convert(varchar, @StartDateTemp2, 106) AS 'End Date',
COUNT(*) AS 'Call Count'
FROM TRN_Call
WHERE (CallTime >= @StartDateTemp1 AND CallTime <= @StartDateTemp2);
END
SET @StartDateTemp1 = DATEADD(dd, 7, @StartDateTemp1);
SET @StartDateTemp2 = DATEADD(dd, 7, @StartDateTemp2);
END
END
發行數量@ 2:呼叫的月爲基礎的計數和開始日期和 周的結束日期在這種情況下,我也有同樣的搜索,但將不得不尋找呼叫計數加開始 - 本月的日期和結束日期。請在這方面也幫助我。
DECLARE @StartDate datetime,@EndDate datetime,@StartDateTemp1 datetime,@StartDateTemp2 datetime,@EndDateTemp datetime,@Period varchar(50);
SET @StartDate='1/1/2010'; SET @EndDate='4/1/2010'; SET @[email protected];
--SET @[email protected];
SET @StartDateTemp2=DATEADD(mm, 1, @StartDate);
SET @Period='Monthly';
IF (@Period = 'Monthly')
BEGIN
WHILE ((@StartDate <= @StartDateTemp1) AND (@StartDateTemp2 <= @EndDate))
BEGIN
IF((@StartDateTemp1 < @StartDateTemp2) AND (@StartDateTemp1 != @StartDateTemp2))
BEGIN
SELECT
convert(varchar, @StartDateTemp1, 106) AS 'Start Date',
convert(varchar, @StartDateTemp2, 106) AS 'End Date',
COUNT(*) AS 'Call Count'
FROM TRN_Call
WHERE (CallTime >= @StartDateTemp1 AND CallTime <= @StartDateTemp2);
END
SET @StartDateTemp1 = DATEADD(mm, 1, @StartDateTemp1);
SET @StartDateTemp2 = DATEADD(mm, 1, @StartDateTemp2);
END
END
如果您爲每個用例發佈了一些示例輸入和輸出,您可能會得到更好的幫助。 – 2010-03-26 13:27:35