各位高手:
有这样一条SQL语句:
select gys , jsy from gylog a where a.gys in (111,222,333,444,555,666) and
a.jsy=(select max(jsy) from gylog b where a.gys=b.gys)
经过测试这条语句执行的结里是这样:它查出了在gylog表中jsy最大的而且gys 包含在(111,222,333,444,555,666)中的记录小弟就是不明白这条语句为什么能返回这个结果,,,小弟认为(select gys , jsy from gylog a where a.gys in (111,222,333,444,555,666) and
a.jsy in (select max(jsy) from gylog b group by gys))才能返回上面的结果,,,哪位高手给小弟讲解一下???
有这样一条SQL语句:
select gys , jsy from gylog a where a.gys in (111,222,333,444,555,666) and
a.jsy=(select max(jsy) from gylog b where a.gys=b.gys)
经过测试这条语句执行的结里是这样:它查出了在gylog表中jsy最大的而且gys 包含在(111,222,333,444,555,666)中的记录小弟就是不明白这条语句为什么能返回这个结果,,,小弟认为(select gys , jsy from gylog a where a.gys in (111,222,333,444,555,666) and
a.jsy in (select max(jsy) from gylog b group by gys))才能返回上面的结果,,,哪位高手给小弟讲解一下???
解决方案 »
- asp.net网站与项目的区别?
- DropDownList OnSelectedIndexChanged事件问题
- AjaxControlToolkit和AtlasControlToolkit有什么区别?
- 高分求:上传时检测大小,超过就return,不向下执行
- GridView中如何读到checked=true的单元格的值?
- 救命的问题??
- 在线求解:关于Dropdownlist联动的问题,查遍了整个CSDN都没解决。
- web services 中使用 session 的问题
- 菜鸟问题3: 重载到底是怎么回事?
- 去掉用不着的HTTPMODULE在哪里配置
- 50分再求一个简单的问题,原来的贴本来说今晚结,不过今晚我不回家,没环境试验,明早结贴。
- ===========100分========郁闷关与一getDate()时间的比较?
最大的只有一个,不就等于“=” 了吗!
比如说:select * from tablename where id=1 和 select * from tablename where id in (1)
这两条是一样的.MAX是聚合函数,它返回的也是一个值,所以IN与=是一样的效果.
如果你想得到全部,就去掉MAX()
a.jsy=(值)
select max(jsy) from gylog b where a.gys=b.gys 返回最大值
a.jsy=(select max(jsy) from gylog b where a.gys=b.gys)
条语句返回的结里最多是一条记录,而(select gys , jsy from gylog a where a.gys in (111,222,333,444,555,666) and
a.jsy in (select max(jsy) from gylog b group by gys))条语句返回的结里有可能是多条的。
假如gylog表中的记录是:
gys jsy
111 200601
111 200602
222 200601
222 200602
333 200603
333 200606
小弟认为第一条语句应该返回的结果是:一条记录333 200606小弟认为第二条语句应该返回的结果是:三条记录111 200602
222 200602
333 200606
结果测试时结果两条语句返回的结果相同都是111 200602
222 200602
333 200606
各位老大,你们能明白小弟的意思不,,快急死我了,,请问一下小弟对第一条语句哪里理解错了??????
改为:
select gys , jsy from gylog a where a.gys in (111,222,333,444,555,666) and
a.jsy=(select max(jsy) from gylog)