2011-07-19 36 views
1

我在使用datepart的查詢中遇到了問題。我們一直使用以下查詢返回最近三週的數據,但是我們最近發現公司正在使用週一至週日的報告周,而下面的查詢默認爲週日至週六。我試過"SET LANGUAGE BRITISH""SET DATEFIRST 1",但是我不能很好地把握這些函數,因爲它們不會改變我的查詢結果。我要指出,我們的SQL Server 2000上運行。如果你知道你的解決方案幫助將不勝感激:SQL Datepart - 從週一開始而不是週日

declare @name varchar(50); 
set @name = 'A name here'; 

SELECT week, year, CallCount, GoodCalls, CAST(CAST(GoodCalls as float)/CAST(CallCount as float)as decimal (18,4)) as NCP_perc 
FROM 
(SELECT TOP 3 datepart(ww, a.date_c) as week 
,datepart(year, a.date_c) as year 
     ,SUM(CallCount_wo_Xfer) as CallCount 
     ,ROUND(SUM(CAST((CallCount_wo_Xfer*NCP_wo_Xfer)as float)),0) as GoodCalls 
     FROM db1 A 
     inner join db2 B 
     on a.Agent = b.Name collate database_default 
     inner join db3 C 
     on b.id = c.id collate database_default 
     where c.manager = @name 
     group by datepart(year, a.date_c), datepart(ww, a.date_c)) AS T 
     order by year desc, week desc 

回答

3

星期一是2的日子,所以儘量

SET DATEFIRST 2 
1

集DATEFIRST 2將跳過第一兩天,如果你想從星期一開始 使用 Set DateFirst 1

+2

歡迎來到Stack Overflow。 OP嘗試使用'SET DATEFIRST 1'並報告它沒有改變。也許還有其他問題,但不管怎樣,在你解釋OP應該嘗試什麼,或者爲什麼這對他不起作用之前,這是沒有用的。 – Gutblender

相關問題