からプルしているさまざまなテーブル/ビューがあります: Invoice
、Detail
、contact
、party
、address
およびremarks
。
基本的に、テーブルからデータを取得する必要があり、remarks
それをテーブルに関連付ける唯一の方法は、テーブルparty
の残りの部分にアクセスして、テーブルの外部キーである列をremarks
参照することです。id
party
これはビューid
の列でもあるため、句が実行されると、その側の id フィールドが結合され、他の列に関連するものは何も残りません。また、どちらのテーブルの列の名前も変更できません。Invoice
FROM
Invoice
remarks
SELECT *
FROM Invoice as invoice_view LEFT OUTER JOIN
Detail as details ON invoice_view.transact = details.transact LEFT OUTER JOIN
contact AS co_contact ON invoice_view.company = co_contact.party LEFT OUTER JOIN
contact AS cp_contact ON invoice_view.company = cp_contact.party INNER JOIN
party as main_party ON invoice_view.party = main_party.party INNER JOIN
party as pay_party ON invoice_view.pay = pay_party.party INNER JOIN
party as rec_party ON invoice_view.rec = rec_party.party LEFT OUTER JOIN
contact as rec_contact ON rec_party.party = rec_contact.party INNER JOIN
address as rec_address ON rec_contact.party = rec_address.party AND rec_contact.address = rec_address.addresscode LEFT OUTER JOIN
contact AS pay_contact ON pay_party.party = pay_contact.party INNER JOIN
adddress AS pay_address ON pay_contact.party = pay_address.party AND pay_contact.address = pay_address.addresscode AND pay_party.party = pay_address.party LEFT OUTER JOIN
--What I tried to get it working
remark as cp_remark CROSS JOIN
party as custom_party
WHERE
( (custom_party.party = pay_party.party) AND (custom_party.id = cp_remark.id) OR (cp_remark.id IS NULL) OR (custom_party.remark = 0))
--More where statements that have no affect on this