У меня есть запрос, для которого я всегда хочу вернуть 10 записей:
set rowcount 10
select row_number() over(order by count(*) desc) row_num
,hist_report_id
,max(rpt_report_name) report_name
from utility.dbo.tbl_report_history
join utility.dbo.tbl_report_definitions
on hist_report_id = rpt_report_id
where hist_user_id = 1038
group by hist_report_id
, который отлично работает, если у меня есть 10 или более записей.Проблема состоит в том, что когда существует менее 10 записей, мне все еще нужно вернуть поле rownumber с нулями в полях report_id и report_name.
Если было возвращено только 7 записей, результаты должны выглядеть следующим образом:
row_num report_id report_name
1 id1 name1
2 id2 name2
3 id3 name3
4 id4 name4
5 id5 name5
6 id6 name6
7 id7 name7
8 null null
9 null null
10 null null
Есть предложения?
Я использую SQL Server 2008