Итак, я построил запрос для моей команды руководителей, который был правильным, но я не понимаю, почему оракул дал мне правильный ответ.
У меня есть 3 таблицы, из которых мне нужно было получить данные, чтобы получитьобщая сумма счета.
Вот мой запрос (пожалуйста, прости меня, мой второй пост, и я не уверен, как правильно отформатировать мои запросы)
select b.total_amount_billed as billed from t1.billing_information b
where b.billing_no in
(select h.billing_no
from t1.res_history h where h.res_seq_no in
(Select r.reservation_seq_no
from t1.res r where r.customer_order_no in ('THO40000') ))
, поэтому в самом глубоком выборе яВозьмите порядковый номер, где мой номер заказа клиента был THO40000, этот запрос возвращает 2 порядковых номера.
второй подзапрос возвращает номера счетов для моего заказа из таблицы истории, где совпадает порядковый номер, в данном случаедля этого заказа они оба используют один и тот же номер биллинга, 312000.
при окончательном выборе возвращается моя общая сумма счета, если она совпадает с моими найденными номерами счетов, в моем случае - $ 110.
запросработает, но то, что я не понимаю, почему это не дублируется?почему он не возвращает 110, за каждый раз, когда он находит 312000, давая мне 2 записи из 110?номер биллинга - это PK в таблице billing_information.Я не уверен, почему это работает без меня, используя отдельное ключевое слово в запросе для номера счета.
в любом случае спасибо за помощь, я сделаю все возможное, чтобы объяснить, если у вас есть вопросы!