strsql问题,高手进~~

发布于 2022-09-02 00:03:20 字数 280 浏览 15 评论 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

请问以上这个句子在strsql里面怎么改啊,难道这里不支持嵌套子查询的么?
错误提示信息: "Result of SELECT more than one row."

高手HELP!!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

停顿的约定 2022-09-15 17:33:48

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,你自己看,根据需要

拥抱影子 2022-09-15 17:33:48

建议楼主用Query查询

深陷 2022-09-15 17:33:10

select a.*,(select b.date from testa b where b.loc=
(select max(c.loc) from testa c where c.[group] ...
jerryxch 发表于 2011-03-01 16:55

从楼住的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]))

花海 2022-09-15 17:33:09

楼上的,有用

夕色琉璃 2022-09-15 17:32:53

c.[group]=a.[group]这个有用吗??

遥远的她 2022-09-15 16:42:17

为什么不先在交互sql环境下(strsql),或navigatior sql命令窗进行测试sql语法可行性呢?

千笙结 2022-09-15 15:04:56

楼上的两位谢谢,可是in 这个方法 在错误出现的时候我就试过了,还是提示相同的信息,我现在只能尝试再用 left join 或 inner join来实现,估计 strsql是不是不支持抽嵌套子查询的

幻梦 2022-09-15 12:44:10

提示信息是说,在进行判断的时候,应该返回一行结果,但是你返回了多行。

做等号判断时,你应该保证等号两边返回的都是一行数据。

如果返回多行,楼上的改法应该可以,就是把等号改成IN

梦里南柯 2022-09-10 14:11:40

试试:
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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文