Я пытаюсь объединить эти два отдельных запроса. Каждый из них по-своему работает. Один для 2019 года, а другой для 2018 года. Я пытаюсь получить всего 7 столбцов. Первый - «город», в котором оба запроса совместно используют, а затем еще 6 столбцов (3 для 2019 и 3 для 2018). Спасибо за вашу помощь!
Я пытался использовать объединение, но я считаю, что мой синтаксис отключен
select
"City",
"2019 AAA",
"2019 BBB",
"2019 CCC",
"2018 AAA",
"2018 BBB",
"2018 CCC"
from (
coalesce(city, 'Total') as "City",
sum(reservations.number_of_nights) as "2019 AAA",
sum(reservations.accommodation_fare+reservations.cleaning_fee)/sum(reservations.number_of_nights) as "2019 BBB",
sum(reservations.accommodation_fare+reservations.cleaning_fee) as "2019 CCC"
from reservations
join listings on reservations.listings_id = listings.id
where status = 'confirmed'
and ((reservations.check_in_datetime at time zone 'EDT')::timestamp::date > '2019-04-30')
and (reservations.check_in_datetime at time zone 'EDT')::timestamp::date < '06-01-2019'
and (reservation_confirmed_at at time zone 'EDT')::timestamp::date < '05-27-2019'
and city <> 'XXXX'
and reservations.deleted_at is null
group by rollup(city)
) as t2019
Join (
select coalesce(city, 'Total') as "City",
sum(reservations.number_of_nights) as "2018 AAA",
sum(reservations.accommodation_fare+reservations.cleaning_fee)/sum(reservations.number_of_nights) as "2018 BBB",
sum(reservations.accommodation_fare+reservations.cleaning_fee) as "2018 CCC"
from reservations
join listings on reservations.listings_id = listings.id
where status = 'confirmed'
and ((reservations.check_in_datetime at time zone 'EDT')::timestamp::date > '2018-04-30')
and (reservations.check_in_datetime at time zone 'EDT')::timestamp::date < '06-01-2018'
and (reservation_confirmed_at at time zone 'EDT')::timestamp::date < '05-28-2018'
and city <> 'XXXX'
and reservations.deleted_at is null
group by rollup(city)
) as t2018
on t2018.City = t2019.City
order by city asc;