特定の請求書番号を取得するには、5 つのテーブルに参加する必要があります。
テーブルは
- 明細書、
- Service_bill
- ダメージ_コスト
- Extraperson_cost
- Advance_cost
を除きbill
、他のすべてのテーブルは null 値を格納できます。
私のクエリは以下のようなものです...
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
のみであるため、最初のテーブルを完全に返す必要があります。でも、どうしてこうなったのかわからない!