收录日期:2019/04/20 16:47:13 时间:2016/08/13 21:07:37 标签:开发
SERIAL_NUMBER  WEPKEY    SSID     PASSWORD SBBS                I_TIME
0C4C397581CB apjkzhcp 4KYP          vnnhx    350000C4C39758199 2011/10/26 20:10:14
0C4C397581CB uwjngn62 YfDw          gmeag    340000C4C397581CB 2011/10/26 20:20:14

像上面的表 :sajet.iac_oem

我想查出最新一笔的资料

我的SQl是这样的,但是不知道为什么会报:ora-00913 :too many values

select  b.wepkey, b.ssid, b.password, b.sbbs
  from sajet.iac_oem b
 where b.serial_number  in (select SERIAL_NUMBER,
                                max(to_char(i_time, 'YYYY/MM/DD HH24:MI:SS')) i_time
                           from sajet.iac_oem t
                          group by SERIAL_NUMBER)

请高手帮忙,该怎么修改。。。。谢谢


in里面的子查询多了i_time ??
in语句中查询时多了一个栏位
b.serial_number in (select SERIAL_NUMBER,i_time  from sajet.iac_oem t)
1对多了。
in 里面多了一个时间的字段
不是多了一个 i_time ,而是应该 in 前面 加上一个 i_time
那怎么去最后一笔资料? 就是说时间最新的



引用 3 楼 syshzbtt 的回复:
b.serial_number in (select SERIAL_NUMBER,i_time  from sajet.iac_oem t)
1对多了。

怎么修改最为简便?我初学

引用 5 楼 coolkisses 的回复:
不是多了一个 i_time ,而是应该 in 前面 加上一个 i_time

select * from (
select wepkey, ssid, password, sbbs
  from sajet.iac_oem 
  order by i_time desc) where  rownum=1


排序取第一个值就是最新的了
或者按你的写法,但要修改一下

select b.wepkey, b.ssid, b.password, b.sbbs
  from sajet.iac_oem b
 where b.serial_number,[color=#FF0000]b.i_time [/color]in (select SERIAL_NUMBER,max(i_time) i_time  from sajet.iac_oem t
  group by SERIAL_NUMBER)


那怎么修改简便,我初学SQL

引用 4 楼 bin3509 的回复:
in 里面多了一个时间的字段
我的记录不止一条的,只是里面有两条是重复的,但是必须去时间为最近的那一笔,所以您写的SQL 好像不能实现,然后修改的那个SQl ,运行了一下,也是报错的


引用 8 楼 mailking 的回复:
SQL code

select * from (
select wepkey, ssid, password, sbbs
  from sajet.iac_oem 
  order by i_time desc) where  rownum=1



排序取第一个值就是最新的了
或者按你的写法,但要修改一下
SQL code

select b.wepkey, b.ssid, b.p……
select b.wepkey, b.ssid, b.password, b.sbbs
  from sajet.iac_oem b
 where b.serial_number in (select SERIAL_NUMBER  from sajet.iac_oem t
  group by SERIAL_NUMBER)
SELECT b.wepkey,sword, b.sbbs FROM

(SELECT DISTINCT  (b.wepkey),sword, b.sbbs
  from sajet.iac_oem b
ORDER BY b.I_TIME) t
GROUP BY  t.wepkey,t.sword, t.sbbs

SELECT T.WEPKEY, T.SWORD, T.SBBS
  FROM (SELECT DISTINCT (B.WEPKEY), SWORD, B.SBBS
          FROM SAJET.IAC_OEM B
         ORDER BY B.I_TIME) T
 WHERE ROWNUM <=1
 GROUP BY T.WEPKEY,
          T.SWORD,
          T.SBBS
select b.wepkey, b.ssid, b.password, b.sbbs
  from sajet.iac_oem b
 where b.serial_number,ROWID in (select SERIAL_NUMBER,MIN(ROWID)  from sajet.iac_oem t
  group by SERIAL_NUMBER)
---------------上 有误

--取靠前的值,如果取后值,改成max
select b.wepkey, b.ssid, b.password, b.sbbs
  from sajet.iac_oem b
 where (b.serial_number,ROWID) in (select SERIAL_NUMBER,MIN(ROWID)  from sajet.iac_oem t
  group by SERIAL_NUMBER)
上面ORDER BY T.T_time 后面加个DESC 这个给忘记了!
where b.serial_number in (select SERIAL_NUMBER,
  max(to_char(i_time, 'YYYY/MM/DD HH24:MI:SS')) i_time
  from sajet.iac_oem t
  group by SERIAL_NUMBER)

select SERIAL_NUMBER,max(to_char(i_time, 'YYYY/MM/DD HH24:MI:SS')) i_time查出来是两列
b.serial_number in 是一列


改成:
where (b.serial_numbe,b.i_time) in (select SERIAL_NUMBER,
  max(to_char(i_time, 'YYYY/MM/DD HH24:MI:SS')) i_time
  from sajet.iac_oem t
  group by SERIAL_NUMBER)

以下代码, 为什么打印一个bmp文件速度是如此的慢, 如果用mspaint打开该bmp进行打印, 速度很快? VSFLEXgrid 问题请教 CxImage image 转TIF 后怎么TIF 文件打不开 在线等 急! (VB) 如何用扇型裁剪一张图片呢? 在线等! vb.net 事务如何处理啊! coldfusion cfselect 联动 帮忙看一下FTP客户端接受列表时的代码 winsock select模型 怎么能让c#做的窗体漂亮些? 请大大们帮忙!进来看一看delphi的几个问题 如下网站是什么语言开发的?页面如何静态化 如何在WIN32程序中显示Gif图片? 周末白天干点啥能赚钱呢 怎样查询指定表分区中的数据 改变TreeView字体颜色 欲购买MTK开发板 tomcat启动时LOG4J写入数据库问题 北京眩彩多媒体工作室,希望与您合作! 求教一个MSSQL的语句 一个dll编译问题 PAYPAL快速结账的API??? 关于xml的程序小问题(急用new) 断点不起作用 关于查找结果需要特殊排序的问题 关于单实例的切换上一个实例的问题,十万火急!!!!新手求助!! 修改adoquery数据,追加到数据库表中的问题 it职业瓶颈 java數組問題 怎么生成类dll文件,然后再怎么调用这个dll文件? Tornado2.2到Tornado2.0的问题。 Page.RegisterStartupScript()原理?能否和前台js代码交流?