Мне нужно соединить 5 таблиц, чтобы получить номер счета.Присоединение 5 таблиц
Таблицы
- счет,
- Service_bill
- Damage_cost
- Extraperson_cost
- Advance_cost
Кроме bill
, все остальные таблицы могут хранить нулевые значения.
Мой запрос, как показано ниже ...
select bill.bill_no,
bill.total,
bill.discount,
bill.to_be_paid,
isnull(Service_bill.total_amt,0) as ServiceCharge,
isnull(Damage_cost.total_amt,0) as DamageCost,
isnull(Extraperson_cost.total_amt,0) as ExtraCost,
isnull(Advance_cost.total_amount,0) as Advance
from bill
left join Advance_cost on bill.bill_no=Advance_cost.room_bill_no and bill.bill_no='57'
inner join Service_bill on bill.bill_no=Service_bill.room_bill_no
inner join Damage_cost on bill.bill_no=Damage_cost.room_bill_no
inner join Extraperson_cost on bill.bill_no=Extraperson_cost.room_bill_no
Теперь он возвращает данные годов, которые присоединяется условия становятся правдой.
Первая таблица должна иметь значения, а другие таблицы - null
, так что она должна полностью возвращать первые таблицы. Но я не знаю, почему это так!
Не удалось понять, что вы подразумеваете под «первой таблицей должно быть значение, тогда другие таблицы являются нулевыми, так что они должны полностью возвращать первые таблицы, но я не знаю, почему это происходит?» ?» – Kangkan