0

私にはうまくいかないという次のSQLの質問があります。最後の CASE 行が間違っていることはわかっていますが、where 句でそのような CASE ステートメントを使用したいと考えています。

私の状況の簡単な説明: 「companyID」でリンクされた独自の資料を入手したいくつかの会社を取得しました。各材料は、pricelist_entries の行にリンクされている場合があります。多くの材料行にリンクされている pricelist_entries テーブルの 1 つの行を検索すると、すべての行が返されますが、現在の会社 (検索を実行する会社) に属する行を返したいだけです。結論: materialID NOT NULL THEN の場合、materials.company="current.companyID".

SELECT peID, peName, materialID
FROM pricelist_entries
INNER JOIN pricelist ON pricelist_entries.peParentID=pricelist.pID
LEFT JOIN materials ON pricelist_entries.peID=materials.pricelist_entries_id
WHERE peBrand = 'Kama' AND pricelist.pCurrent = 1 
  AND (peName LIKE '%gocamp de%' OR    peArtnr LIKE '%gocamp de%') 
  AND pricelist.country=0 AND pricelist_entries.peDeleted=0
CASE materialID WHEN IS NOT NULL THEN materials.companyID=10 END

私の問題をより良い方法で説明する必要があるかどうか教えてください。前もって感謝します!

4

2 に答える 2