1,问题描述:
基础数据:有一条bankno=1的数据,有一条bankno=2的数据;
1.1,sql查询结果是最大的str
查询时,赋值bankno=1;
SELECT MAX(str) INTO zfc FROM (
SELECT str FROM b_banksearchback
WHERE bankno=yhbh AND inday=TO_DAYS(jfrq) AND houseid=yhbm
GROUP BY bankno,inday,houseid,str ) t;
1.2,上述sql单独拿出来,执行没问题;
1.3,sql放在存储过程执行,查询结果,是bankno条件不起作用的数据;也就是查询了整体数据的最大值;而不是bankno=1的最大值;
2,处理方案:给表加上别名,引用时使用别名
SELECT MAX(str) INTO zfc FROM (
SELECT a.str FROM b_banksearchback a
WHERE a.bankno=yhbh AND a. inday=TO_DAYS(jfrq) AND a.houseid=yhbm
GROUP BY a.str ) t;
2.1,sql单独执行结果和sql在存储过程执行结果一致。
3,原理解析:
未找到。。。。。
文章讨论了在SQL存储过程中,如何因为没有正确引用表别名导致查询条件失效,解决方案是为表添加别名并在查询中使用,确保只获取bankno=1的数据的最大str值。

被折叠的 条评论
为什么被折叠?



