0

これは以前に回答されていると確信していますが、見つかりません!

表 - 予約 B

Customer    Product
Tim         Milk
Bob         Milk

表 - 製品 P

Customer    Product     Description
Tim         Milk         This is Tim's Milk
NULL        Milk         This is Anybody's Milk

テーブルを結合して、次の出力を取得したいと考えています (簡単にするために、例ではすべての列を示しています)。

B.Customer    B.Product   P.Customer     P.Product    P.Description
Tim           MILK        Tim            MILK         This is Tim's Milk
Bob           MILK        NULL           MILK         This is Anybody's Milk

そのため、クエリは、最初に特定の顧客関連製品があるかどうかを確認するために検索し、ある場合はそれを使用し、そうでない場合は一般的な製品を使用する必要があります...

とても有難い!

4

2 に答える 2

2
   SELECT B.Customer, B.Product,
          ISNULL(C.Customer,P.Customer) Customer,
          CASE WHEN C.Customer IS NULL THEN P.Description
               ELSE C.Description END Description
     FROM B
LEFT JOIN C ON C.Product = B.Product and C.Customer = B.Customer
LEFT JOIN P ON P.Product = B.Product and P.Customer IS NULL
于 2012-09-19T12:45:35.170 に答える
0

2 回参加する必要があると思います。最初は顧客と製品について、次に製品のみについてです。

SELECT
  B.Customer,
  B.Product,
  IFNULL(Pfound.Customer,PnotFound.Customer) AS P_Customer,
  IFNULL(Pfound.Product,PnotFound.Product) AS P_Product,
  IFNULL(Pfound.Description,PnotFound.Description) AS P_Description
FROM B
  LEFT JOIN P AS Pfound
    ON B.Customer=Pfound.Customer
    AND B.Product=Pfound.Product
  LEFT JOIN P AS PnotFound
    ON B.Product=PnotFound.Product
    AND PnotFound.Customer IS NULL
于 2012-09-19T12:40:00.417 に答える