Во-первых, прошло очень много времени с тех пор, как я выполнял SQL-запросы, и даже тогда это было не на высоком уровне.
Я создал SQL-запрос, который работает, но я хочу, чтобы диапазон дат менялся автоматически, например, для выполнения за предыдущий месяц. Я боролся часами, но, похоже, не могу заставить работать какую-либо переменную.
Вот простой SQL, который я создал.
SELECT DEST, COUNT (DEST), SUM(TALK_TIME), SUM(HOLD_TIME)
FROM ACC.CALLDETAIL a
where a.ORIG_DATE>='1140201'
and a.ORIG_DATE<'1140301'
and a.APPLIC_NUM = 185
GROUP BY a.DEST;
Формат даты странный, годы после 1900-го месяца.
Любая помощь будет оценена по достоинству.
Пытаться:
SELECT DEST, COUNT (DEST), SUM(TALK_TIME), SUM(HOLD_TIME)
FROM ACC.CALLDETAIL a
where a.ORIG_DATE >= '1' + (right(convert(varchar,DateAdd(mm, DateDiff(mm, 0, GETDATE()) - 1, 0), 112),6))
and a.ORIG_DATE < '1' + (right(convert(varchar,DateAdd(mm, DateDiff(mm, 0, GETDATE()) - 0, 0), 112),6))
and a.APPLIC_NUM = 185
GROUP BY a.DEST;
И посмотрите, делает ли это то, что вы хотите.
(В противном случае вам, возможно, придется объявить @startdate и @enddate и определить их перед запросом.)