У меня есть SQL-запрос, который я просто не могу отобразить так, как я хочу. По сути, у нас есть таблица, полная транзакций, и я хотел бы получить сумму (для определенного типа транзакций), купленную с февраля этого года до сих пор. Вот запрос для этого:
select sum(amount) as "2011" from transactions
where transaction_type = 'registration'
and date_entered > '2011-02-01'
and date_entered < GetDate()
Теперь я также хотел бы увидеть сумму тех же транзакций, но за предыдущий год:
select sum(amount) as "2010" from transactions
where transaction_type = 'registration'
and date_entered > '2010-02-01'
and date_entered < DateAdd(yy, -1, GetDate())
То, что я не могу понять, это как получить эти суммы бок о бок. Я пробовал UNION all
, но они отображаются в отдельных строках, а не в столбцах.
select sum(amount) as "2011" from transactions
where transaction_type = 'registration'
and date_entered > '2011-02-01'
and date_entered < GetDate()
UNION all
select sum(amount) as "2010" from transactions
where transaction_type = 'registration'
and date_entered > '2010-02-01'
and date_entered < DateAdd(yy, -1, GetDate())
Я также читал здесь о переполнении стека, что PIVOT
может быть вариантом, но я пока не видел пример, который мог бы манипулировать / настраивать для запросов выше.
Любые предложения о том, как я могу получить эти данные бок о бок? Я уверен, что пропускаю что-то простое.
Большое спасибо!