我得到了以下 sql 问题,我认为这对我不起作用。我知道最后一个 CASE 行是错误的,但我想在 where 子句中使用这样的 CASE 语句。
我的情况的简短描述:我有几家公司在那里获得了自己的材料,这些材料与“companyID”相关联。每个材料都可能链接到 pricelist_entries 中的一行。如果我在 pricelist_entries 表中搜索链接到许多物料行的一行,所有行都将返回,但我只想返回属于当前公司(执行搜索的公司)的行。结论:如果 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
请告诉我是否需要以更好的方式描述我的问题。提前致谢!