У меня есть такие данные, как
Таблица 1: (после преобразования данных в нужный мне формат с помощью приведенного ниже запроса далее в этом вопросе после левого соединения)
Изначально содержит информацию о билетах, такую как дата, номер билета, тип билета.
Monthyear Premiumold Silverold
-----------------------------------
Jan 2019 233 156
Feb 2019 344 258
Mar 2019 222 298
Таблица 2: которую я предсказал и выдвинул из другого источника в том же формате
Monthyear Premium silver
----------------------------
Apr 2019 284 312
May 2019 267 344
Jun 2019 223 356
Jul 2019 244 367
Aug 2019 234 373
Я хочу получить эти данные в таком формате, как:
Monthyear Premiumold Silverold Premium silver
---------------------------------------------------------
Jan2019 233 156 NULL NULL
Feb 2019 344 258 NULL NULL
Mar 2019 222 298 NULL NULL
Apr 2019 NULL NULL 284 312
May 2019 NULL NULL 267 344
Jun 2019 NULL NULL 223 356
Jul 2019 NULL NULL 244 367
Aug 2019 NULL NULL 234 373
, который в основном собирает месяцы и пропускает NULL там, где нет данных.
Я пытался:
select *
from
((select Monthyear, Premium, Silver
from [dbo].[Predicted]) c
left join
(select
case when (tickettype = 'Premium')
then count(number)
end as Premiumold,
case when (tickettype = 'Silver')
then count(number)
end as Silverold,
concat(convert(char(3), a.date, 0), ' ', year(a.date)) as Monthyear
from
openquery(SNOW, 'select number,date, ticket_type from ticketdata
where date between ''2019-01-01 00:00:00'' and ''2019-02-28 23:59:59''')a
group by concat(convert(char(3), a.sys_created_on, 0),' ',year(a.date)),tickettype) as b
on c.Monthyear = b.Monthyear)
Это, очевидно, не возвращает то, что я хочу.
Пожалуйста, помогите мне с этим.
Ой!