我正在尝试制作一个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'
但是,我在格式化该代码方面遇到了麻烦。
答案 0 :(得分:0)
由于
g.fig.subplots_adjust(hspace=-.25)
大于g.fig.subplots_adjust(hspace=.1)
,因此选择应该在SAFETYSTOCKQTY
中返回零。如果不是,则应继续在3
中显示3。
使用QOHQTY
:
QOHQTY
或者,也许像averey_larry所说,您想将CASE
与SELECT
itemno,
CASE WHEN safetystockqty > 3 THEN 0 ELSE qohqty END qohqty,
safetystockqty
FROM EDI846OutboundDetail WITH (NOLOCK)
WHERE partnerid = '987654321' AND itemno = '123465'`
的值进行比较?然后:
safetystockqty