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