根据“大于”子句更新Select中的值

时间:2019-09-22 22:44:31

标签: sql

我正在尝试制作一个SQL报告来标识当前的现有数量。除非应用规则,否则选择项中列出的值将在表中显示给定值。

本质上,我需要有关如何编写IF语句的帮助。

SELECT itemno
    ,QOHQTY
    ,SAFETYSTOCKQTY
FROM EDI846OutboundDetail WITH (NOLOCK)
WHERE PARTNERID = '987654321'
    AND itemno = '123465'`

此选择将返回

itemno  QOHQTY      SAFETYSTOCKQTY
123465  3.00000000  12.00000000

但是,由于SAFETYSTOCKQTY大于3,所以选择应该在QOHQTY中返回零。如果不是,则应继续在QOHQTY中显示3。

我一直在试图在临时表中同时使用IF语句,但是我试图避免这种情况。同样,我发现了一个可能有效的WHERE CASE语句,例如下面的 example

SELECT '1'
FROM EDI846OutboundDetail WITH (NOLOCK)
WHERE CASE WHEN SAFETYSTOCKQTY > 1 THEN '1'
END
    and PARTNERID = '987654321'
    AND itemno = '123465'

但是,我在格式化该代码方面遇到了麻烦。

1 个答案:

答案 0 :(得分:0)

  

由于g.fig.subplots_adjust(hspace=-.25)大于g.fig.subplots_adjust(hspace=.1),因此选择应该在SAFETYSTOCKQTY中返回零。如果不是,则应继续在3中显示3。

使用QOHQTY

QOHQTY

或者,也许像averey_larry所说,您想将CASESELECT itemno, CASE WHEN safetystockqty > 3 THEN 0 ELSE qohqty END qohqty, safetystockqty FROM EDI846OutboundDetail WITH (NOLOCK) WHERE partnerid = '987654321' AND itemno = '123465'` 的值进行比较?然后:

safetystockqty