Sql 在选择中选择显示错误-缺少右括号
这很好用Sql 在选择中选择显示错误-缺少右括号,sql,oracle,Sql,Oracle,这很好用 SELECT CM.CMN_CODE,CM.CMN_NAME --(SELECT CMPI_PRCINX FROM CMD_MTRL_PRICE_INF WHERE ROWNUM = 1 ORDER BY CMPI_PRCINX DESC) as k FROM CMN_MST CM LEFT JOIN CMD_MTRL_INF CMI ON CM.CMN_CODE=CMI.CMN_CDTY_MTRL LEFT JOIN CMD_MTRL_PRICE_INF C
SELECT CM.CMN_CODE,CM.CMN_NAME
--(SELECT CMPI_PRCINX FROM CMD_MTRL_PRICE_INF WHERE ROWNUM = 1 ORDER BY CMPI_PRCINX DESC) as k
FROM CMN_MST CM LEFT JOIN CMD_MTRL_INF CMI ON CM.CMN_CODE=CMI.CMN_CDTY_MTRL
LEFT JOIN CMD_MTRL_PRICE_INF CMPI ON CMI.CMI_CODE = CMPI.CMI_CODE
WHERE CM.CTYP_CODE IN (SELECT CTYP_CODE FROM CTYP_MST WHERE CTYP_NAME = 'Common Material');
但这件事给我带来了麻烦
SELECT CM.CMN_CODE,CM.CMN_NAME,
(SELECT CMPI_PRCINX FROM CMD_MTRL_PRICE_INF WHERE ROWNUM = 1 ORDER BY CMPI_PRCINX DESC) AS K
FROM CMN_MST CM LEFT JOIN CMD_MTRL_INF CMI ON CM.CMN_CODE=CMI.CMN_CDTY_MTRL
LEFT JOIN CMD_MTRL_PRICE_INF CMPI ON CMI.CMI_CODE = CMPI.CMI_CODE
WHERE CM.CTYP_CODE IN (SELECT CTYP_CODE FROM CTYP_MST WHERE CTYP_NAME = 'Common Material');
SQL错误:ORA-00907:缺少右括号
90700000-“缺少右括号”
也试过
DECLARE
PCMPI_PRCINX NUMERIC;
BEGIN
SELECT CMPI_PRCINX INTO PCMPI_PRCINX FROM CMD_MTRL_PRICE_INF WHERE ROWNUM = 1 ORDER BY CMPI_PRCINX DESC;
--SELECT CMPI_PRCINX FROM CMD_MTRL_PRICE_INF WHERE ROWNUM = 1 ORDER BY CMPI_PRCINX DESC;
SELECT CM.CMN_CODE,CM.CMN_NAME
--(SELECT CMPI_PRCINX FROM CMD_MTRL_PRICE_INF WHERE ROWNUM = 1 ORDER BY CMPI_PRCINX DESC) AS K,
PCMPI_PRCINX AS PREVPRICE,
CMPI.CMPI_UPDATE_STS
FROM CMN_MST CM LEFT JOIN CMD_MTRL_INF CMI ON CM.CMN_CODE=CMI.CMN_CDTY_MTRL
LEFT JOIN CMD_MTRL_PRICE_INF CMPI ON CMI.CMI_CODE = CMPI.CMI_CODE
WHERE CM.CTYP_CODE IN (SELECT CTYP_CODE FROM CTYP_MST WHERE CTYP_NAME = 'Common Material');
END;
/
试试这个
SELECT CM.CMN_CODE,CM.CMN_NAME,
(SELECT TOP 1 CMPI_PRCINX FROM CMD_MTRL_PRICE_INF WHERE ROWNUM = 1 ORDER BY CMPI_PRCINX DESC) AS K
FROM CMN_MST CM LEFT JOIN CMD_MTRL_INF CMI ON CM.CMN_CODE=CMI.CMN_CDTY_MTRL
LEFT JOIN CMD_MTRL_PRICE_INF CMPI ON CMI.CMI_CODE = CMPI.CMI_CODE
WHERE CM.CTYP_CODE IN (SELECT CTYP_CODE FROM CTYP_MST WHERE CTYP_NAME = 'Common Material');
试一试
其中ROWNUM=1已被ROWNUM='1'更改我认为您需要重新考虑查询的这一部分:
,(select cmpi_prcinx
from cmd_mtrl_price_inf
where rownum = 1
order by cmpi_prcinx desc) as k
这将从cmpi_prcinx返回第一行,然后应用订单。因此,它不会像您预期的那样返回cmpi_prcinx的最大值
您可以尝试以下方法:
,(select max(cmpi_prcinx) from cmd_mtrl_price) as k
这是我的朋友。。。看我的标签。。top 1在ITI中不受支持在这种情况下,您的原版还可以,只需删除订单即可。
,(select max(cmpi_prcinx) from cmd_mtrl_price) as k