我有这个查询并且运行良好,问题是如果有一种方法可以使查询为NULL,如果表中不存在列值吗?
UPDATE PRD_WOCNT
SET c1 = (
SELECT WO_CNT.RATE FROM WO_CNT
WHERE WO_CNT.CNT = PRD_WOCNT.c1
)
WHERE EXISTS (
SELECT WO_CNT.CNT FROM WO_CNT
WHERE WO_CNT.CNT = PRD_WOCNT.c1
)
是的,它使用第二个表将销售代码的主表值更新为佣金率。但有时会输入表中不存在的销售代码,因此它会将销售代码添加为美元值,并使添加的总数错误。
我不太了解PHP,如果我可以简单地改变查询就不要理会它...它在黑暗中是一种刺痛,有一种感觉我需要在PHP方面这样做但是我不知道如何让我的查询告诉php它不存在。
答案 0 :(得分:3)
UPDATE a
SET c1 = WO_CNT.RATE
FROM PRD_WOCNT a
LEFT JOIN WO_CNT b
ON b.CNT = a.c1
答案 1 :(得分:0)
我没有被处决。我认为它会起作用。试试这个问题:
UPDATE PRD_WOCNT SET c1 = CASE
WHEN EXISTS (
SELECT WO_CNT.CNT FROM WO_CNT
WHERE WO_CNT.CNT = PRD_WOCNT.c1
)
THEN (
SELECT WO_CNT.RATE FROM WO_CNT
WHERE WO_CNT.CNT = PRD_WOCNT.c1
)
ELSE NULL
END