1
私は顧客とその支払い条件をいくつかの異なるテーブルから見つけるSQLクエリを持っています。SQL - 支払条件の異なる行のみを検索
クエリは次のとおりです。
SELECT
c.CustomerCode, c.CustomerName, cst.PaymentTermCode
FROM
CustomerShipTo cst
JOIN
Customer c ON cst.CustomerCode = c.CustomerCode
WHERE
cst.IsActive = 1 AND c.IsProspect = 0 AND c.IsActive = 1
複数の配送先住所を持つ顧客がすべて同じ支払条件になるわけではありません。このサンプルデータ、最後の2行、同じ顧客(CUST-006002
)には、2つの異なる支払いコードを持つ2つの異なる配送先住所があるので、これらの行のみを選択します。
HAVING COUNT(CustomerCode) > 1
句を最後に追加しようとしましたが、複数の配送先住所(Customer E
)の顧客が同じ支払い期限を持つ顧客が存在することがあるため、望ましい出力が得られませんでした。
╔═══════════════╦═════════════════════════════╦═══════════════════╗
║ Customer Code ║ Shipping Address ║ Payment Term Code ║
╠═══════════════╬═════════════════════════════╬═══════════════════╣
║ CUST-016714 ║ Company A - Sample Address ║ NET30EOM ║
╠═══════════════╬═════════════════════════════╬═══════════════════╣
║ CUST-017457 ║ Company B - Sample Address ║ NET30EOM ║
╠═══════════════╬═════════════════════════════╬═══════════════════╣
║ CUST-016464 ║ Company C - Sample Address ║ COD ║
╠═══════════════╬═════════════════════════════╬═══════════════════╣
║ CUST-017215 ║ Company D - Sample Address ║ COD ║
╠═══════════════╬═════════════════════════════╬═══════════════════╣
║ CUST-006001 ║ Company E - Sample Address1 ║ NET30EOM ║
╠═══════════════╬═════════════════════════════╬═══════════════════╣
║ CUST-006001 ║ Company E - Sample Address2 ║ NET30EOM ║
╠═══════════════╬═════════════════════════════╬═══════════════════╣
║ CUST-006002 ║ Company F - Sample Address1 ║ COD ║
╠═══════════════╬═════════════════════════════╬═══════════════════╣
║ CUST-006002 ║ Company F - Sample Address2 ║ NET30EOM ║
╚═══════════════╩═════════════════════════════╩═══════════════════╝