からプルしているさまざまなテーブル/ビューがあります: Invoice、Detail、contact、party、addressおよびremarks。
基本的に、テーブルからデータを取得する必要があり、remarksそれをテーブルに関連付ける唯一の方法は、テーブルpartyの残りの部分にアクセスして、テーブルの外部キーである列をremarks参照することです。idparty
これはビューidの列でもあるため、句が実行されると、その側の id フィールドが結合され、他の列に関連するものは何も残りません。また、どちらのテーブルの列の名前も変更できません。InvoiceFROMInvoiceremarks
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