strsql问题,高手进~~
select a.*,(select b.date from testa b where b.loc=
(select max(c.loc) from testa c where c.[group]=a.[group]))
from testa a
请问以上这个句子在strsql里面怎么改啊,难道这里不支持嵌套子查询的么?
错误提示信息: "Result of SELECT more than one row."
高手HELP!!!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
select a.*,(select b.date from testa b where b.loc=
(select max(c.loc) from testa c where c.[group]=a.[group]))
from testa a
你要显示的是结果是a的所有字段和b的date字段!
select a.*后面你用的是“,”,那么select b.date from testa b where b.loc=
(select max(c.loc) from testa c where c.[group]=a.[group]))
from testa a 这个要保证出现的也是一条记录,但是可能实际数据不是一条,所以你出错了!
你如果要做的话,后面那段看成一张表,然后和a表join,至于怎么join,你自己看,根据需要
建议楼主用Query查询
从楼住的SQL语句来看,楼住是想查询a表中满足a表字段date的纪录,其中date在(select b.date from testa b where b.loc=(select max(c.loc) from testa c where c.[group]=a.[group]))中,不知道楼主是不是这个意思啊
如果是这样的话,可以把SQL语句改为:
select a.* from testa a where a.date in(select b.date from testa b where b.loc=
(select max(c.loc) from testa c where c.[group]=a.[group]))
楼上的,有用
c.[group]=a.[group]这个有用吗??
为什么不先在交互sql环境下(strsql),或navigatior sql命令窗进行测试sql语法可行性呢?
楼上的两位谢谢,可是in 这个方法 在错误出现的时候我就试过了,还是提示相同的信息,我现在只能尝试再用 left join 或 inner join来实现,估计 strsql是不是不支持抽嵌套子查询的
提示信息是说,在进行判断的时候,应该返回一行结果,但是你返回了多行。
做等号判断时,你应该保证等号两边返回的都是一行数据。
如果返回多行,楼上的改法应该可以,就是把等号改成IN
试试:
select a.*,(select b.date from testa b where b.loc in
(select max(c.loc) from testa c where c.[group]=a.[group]))
from testa a