select * from sj11 Where 1=1 and Zy_BlZt='办理' and Zf_PostCode is null and Yjz_Code is not null And
(SELECT SUM (Yp1_Money+Xm1_Money+Wc1_Money) AS Fy_ZMoney
FROM Sj11 t1 WHERE Zy_BlZt='办理' and Zf_PostCode is null
group by t1.Ry_Code) between 1000 and 2000单行子查询返回多行。。报错啊 怎么办 谢谢啦语句 sql oracle
(SELECT SUM (Yp1_Money+Xm1_Money+Wc1_Money) AS Fy_ZMoney
FROM Sj11 t1 WHERE Zy_BlZt='办理' and Zf_PostCode is null
group by t1.Ry_Code) between 1000 and 2000单行子查询返回多行。。报错啊 怎么办 谢谢啦语句 sql oracle
FROM SJ11
WHERE 1 = 1
AND ZY_BLZT = '办理'
AND ZF_POSTCODE IS NULL
AND YJZ_CODE IS NOT NULL
AND (SELECT SUM(YP1_MONEY + XM1_MONEY + WC1_MONEY) AS FY_ZMONEY
FROM SJ11 T1
WHERE ZY_BLZT = '办理'
AND ZF_POSTCODE IS NULL
GROUP BY T1.RY_CODE) BETWEEN 1000 AND 2000
你的代码肯定有问题啊。
SELECT SUM(YP1_MONEY + XM1_MONEY + WC1_MONEY) AS FY_ZMONEY
FROM SJ11 T1
WHERE ZY_BLZT = '办理'
AND ZF_POSTCODE IS NULL
GROUP BY T1.RY_CODE
这个里面的是根据RY_CODE来分组的,但是外面那张表里面RY_CODE对应的肯定是多条数据啊。关联肯定有问题的啊。
from sj11 t
Where 1=1 and Zy_BlZt='办理' and Zf_PostCode is null and Yjz_Code is not null And
(SELECT SUM (Yp1_Money+Xm1_Money+Wc1_Money) AS Fy_ZMoney
FROM Sj11 t1
HERE Zy_BlZt='办理' and Zf_PostCode is null and t. Ry_Code = t1.Ry_Code
) between 1000 and 2000
SELECT SUM(YP1_MONEY + XM1_MONEY + WC1_MONEY) AS FY_ZMONEY
FROM SJ11 T1
WHERE ZY_BLZT = '办理'
AND ZF_POSTCODE IS NULL
GROUP BY T1.RY_CODE
“AND XXX between 1000 and 2000”这个XXXX只能是一个数据,结果你的子查询返回好几条数据,Oracle无法决定拿哪一条数据来判断between 1000 and 2000,逻辑上就是不通的5L的sql是对的,或者可以这样写:
SELECT *
FROM SJ11
WHERE ZY_BLZT = '办理'
AND ZF_POSTCODE IS NULL
AND YJZ_CODE IS NOT NULL
AND RY_CODE IN (SELECT T1.RY_CODE
FROM SJ11 T1
WHERE ZY_BLZT = '办理'
AND ZF_POSTCODE IS NULL
GROUP BY T1.RY_CODE
HAVING SUM(T1.YP1_MONEY + T1.XM1_MONEY + T1.WC1_MONEY) BETWEEN 1000 AND 2000)