У меня есть макет SQL-запроса, который будет представлять собой настоящий SQL-запрос.
Create table #tmp
(
Atype varchar(10),
Btype varchar(10)
)
insert into #tmp values ('a','x')
insert into #tmp values ('b','x')
insert into #tmp values ('a','y')
insert into #tmp values ('a','y')
insert into #tmp values ('b','z')
insert into #tmp values ('b','y')
select atype, btype,count(*) as count
from #tmp
group by atype, btype
order by atype
drop table #tmp
Это даст мне результат:
atype btype count
-----------------
a x 1
a y 2
b x 1
b y 1
b z 1
После этого я хочу создать отчет, который в основном выглядит следующим образом:
atype|x| y| z
-------------
a |1| 2| 0
b |1| 1| 1
Я уверен, что вы можете сделать это, используя сумасшедший код t-sql, но я изо всех сил пытаюсь сделать это правильно.
EDIT:
Я согласен, что вы можете использовать команду TSQL PIVOT, но что происходит, когда Btype является переменной. То есть я не знаю, сколько будет типов?