Я столкнулся с проблемой в запросе с использованием datepart. Мы использовали следующий запрос для возврата данных за последние три недели, однако недавно мы выяснили, что корпорация использует отчетную неделю с понедельника по воскресенье, в то время как следующий запрос по умолчанию установлен на воскресенье-субботу. Я пробовал "SET LANGUAGE BRITISH"
и "SET DATEFIRST 1"
, но я не должен хорошо разбираться в этих функциях, поскольку они не меняют результаты моего запроса. Я должен отметить, что мы работаем на SQL Server 2000. Если вы знаете решение, ваша помощь будет оценена:
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