У меня есть хранимые процедуры, которые выполняют разные задачи, но я хотел бы соединить некоторые из них, чтобы уменьшить количество хранимых процедур, созданных в базе данных.Многие процедуры основаны на статистике по годам, и вот пример:
Select
DATENAME(MONTH, DATE_) AS Date,
count(distinct VATNUMBER) As Count
from
(
select VATNUMBER, DATE_ = min(DATE_)
from
ACCOUNTS a inner join CUSTTABLE b
on a.ID= b.ID
where ITEMNUMBER in(7055,7056,7059) AND YEAR(a.DATE_) = '2017'
AND VATNUMBER NOT IN (
select VATNUMBER
from
ACCOUNTS a inner join CUSTTABLE b
on a.ID= b.ID
where ITEMNUMBER in(7055,7056,7059)
AND DATE_ < '2017-01-01'
)
group by VATNUMBER
) d
group by MONTH(DATE_), DATENAME(MONTH, DATE_)
Order by MONTH(DATE_)
Результат за 2017 год:
Date | Count
January | 61
February | 43
March | 23
April | 48
etc....
И теперь у меня такая же Процедура для 2018 года:
Select
DATENAME(MONTH, DATE_) AS Date,
count(distinct VATNUMBER) As Count
from
(
select VATNUMBER, DATE_ = min(DATE_)
from
ACCOUNTS a inner join CUSTTABLE b
on a.ID= b.ID
where ITEMNUMBER in(7055,7056,7059) AND YEAR(a.DATE_) = '2018'
AND VATNUMBER NOT IN (
select VATNUMBER
from
ACCOUNTS a inner join CUSTTABLE b
on a.ID= b.ID
where ITEMNUMBER in(7055,7056,7059)
AND DATE_ < '2018-01-01'
)
group by VATNUMBER
) d
group by MONTH(DATE_), DATENAME(MONTH, DATE_)
Order by MONTH(DATE_)
Результат за 2018 год:
Date | Count
January | 119
February | 200
March | 112
April | 87
etc....
Я хотел бы поместить оба оператора select в одну и ту же хранимую процедуру.Результат, который я хотел бы видеть:
Date 2017| Count | Date 2018| Count
January | 61 | January | 119
February | 43 | February | 200
March | 23 | March | 112
April | 48 | April | 87
etc....