Внутренняя таблица соединения при выпуске колонки - PullRequest
1 голос
/ 22 марта 2019

Ниже мой запрос, по какой-то причине он продолжает работать и ничего не возвращает.Я хотел объединить обе таблицы и добавить условие booking_value = 1, которое находится в таблице, к которой я присоединяюсь.Я хочу, чтобы все записи отображались с той же датой проката, что и во второй таблице, но где резервирование _value = 1.

select a.timestamp , SUM(DEMAND_TO_COME * BOARD_RATE) AS 
RevenueTotal, 
count(DEMAND_TO_COME * BOARD_RATE) as NumofTrans from(
select  PA_FCS.ob_location_id, 
PA_FCS.ib_location_id, 
PA_FCS.vehicle_class, 
PA_FCS.return_date,
PA_FCS.RENTAL_DATE,board_rate,
PA_FCS.Demand_to_come,
substr(PA_FCS.rental_date, 0,8) as timestamp
from PA_FCS 

inner join pa_reservation on pa_reservation.Rental_date = 
PA_FCS.rental_date where booking_value=1
) a
group by a.timestamp
order by a.timestamp;

Это должно сработать и дать мне три столбца следующего

 Timestamp    RevenueTotal       NumofTrans
 20190220      51435.56745        123665

Не уверен, что я здесь не так делаю.

1 Ответ

2 голосов
/ 22 марта 2019

Вы можете упростить свой запрос следующим образом (вам не нужен подзапрос и некоторые поля в его проекции):

SELECT
    substr(pa_fcs.rental_date, 0, 8) AS timestamp,
    SUM(pa_fcs.demand_to_come * board_rate) AS revenuetotal,
    COUNT(*) AS numoftrans
FROM
    pa_fcs
    INNER JOIN pa_reservation ON pa_reservation.rental_date = pa_fcs.rental_date
WHERE
    booking_value = 1
GROUP BY
    substr(pa_fcs.rental_date, 0, 8)
ORDER BY
    timestamp;

Я не уверен, чего вы пытаетесь достичь с помощью count(DEMAND_TO_COME * BOARD_RATE).Если вы хотите количество записей, count(*) должно сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...