課金が必要なさまざまなサイトで契約している顧客がいます。
サイトの請求先住所には、顧客の住所で請求されるサイトと別の住所で請求されるサイトの 2 種類があります。サイトの種類はフィールド「ステータス」によって処理されます。サイトが顧客の住所で請求される場合、フィールドは「C」に等しくなります。別のサイトのアドレスに請求される場合、それは「A」に等しく、フィールド「bill_site_id」には請求に使用される「site_id」が入力されます。請求書の送付先住所を 1 回のクエリで取得したい...
顧客が 2 つのサイトを持っているとします (A は課金のための B を指します)。要求には明らかに 2 つのサイトが表示されますが、請求に使用するサイト (B) のみが必要です。これだけを取得するにはどうすればよいですか?
これが私の質問です(匿名なので、優しくしてください:-))
SELECT CASE wp.status
WHEN 'A'
THEN wp2.name
ELSE c.NAME
END AS NAME,
CASE wp.status
WHEN 'A'
THEN wp2.adress
ELSE c.street
END AS street,
CASE wp.status
WHEN 'A'
THEN wp2.city
ELSE c.city
END AS city,
CASE wp.status
WHEN 'A'
THEN wp2.postcode
ELSE c.postcode
END AS postcode
FROM customer c, site wp, site wp2, customer_site cwp
WHERE c.idcompany = cwp.idcompany
AND cwp.site_id = wp.site_id
AND wp2.site_id(+) = wp.bill_site_id
AND c.idcompany = :someId
GROUP BY wp.status,
wp2.name,
wp2.adress,
wp2.city,
wp2.postcode