現有數據如下:
NAME STORAGE_LIFE QTY MAKE_DATE SPECW SPECL LOT_NO BARCODE CDAY
AA 24 1 2007/9/2 105 20 79127004 A0005 2007.11.13
AA 24 1 2007/12/1 105 20 7$067008 A0005 2008.06.28
AA 24 1 2007/9/2 110 20 79127004 A0005 2007.11.29
AA 24 1 2007/9/2 110 20 79127004 A0005 2007.12.19
AA 24 1 2008/2/1 110 20 82137006 A0005 2008.07.23
AA 24 2 2008/1/1 130 20 81217004 A0005 2008.07.11
AA 24 2 2008/6/1 130 20 86144701 A0005 2008.09.09
AA 24 1 2007/9/2 170 20 79127004 A0005 2007.12.15
AA 24 1 2007/10/1 170 20 7$112204 A0005 2008.01.09我想要得到相同的規格(specw,specl)分組后日期(cday)最大的一條記錄這樣的SQL不用row_number() over()函數怎樣寫?要寫報表,因為Report Builder版本低不支持這個分析函數
NAME STORAGE_LIFE QTY MAKE_DATE SPECW SPECL LOT_NO BARCODE CDAY
AA 24 1 2007/9/2 105 20 79127004 A0005 2007.11.13
AA 24 1 2007/12/1 105 20 7$067008 A0005 2008.06.28
AA 24 1 2007/9/2 110 20 79127004 A0005 2007.11.29
AA 24 1 2007/9/2 110 20 79127004 A0005 2007.12.19
AA 24 1 2008/2/1 110 20 82137006 A0005 2008.07.23
AA 24 2 2008/1/1 130 20 81217004 A0005 2008.07.11
AA 24 2 2008/6/1 130 20 86144701 A0005 2008.09.09
AA 24 1 2007/9/2 170 20 79127004 A0005 2007.12.15
AA 24 1 2007/10/1 170 20 7$112204 A0005 2008.01.09我想要得到相同的規格(specw,specl)分組后日期(cday)最大的一條記錄這樣的SQL不用row_number() over()函數怎樣寫?要寫報表,因為Report Builder版本低不支持這個分析函數
解决方案 »
- oracle游标使用在where中
- 数据库压缩问题
- 为何 rownum 后很慢!!!
- 关于上亿数据检索量可行解决方案
- 这个问题这么解决?ORA-02270: no matching unique or primary key for this column-list
- 希望大家推荐一本 Oracle的经典教材!!!
- 输入问题?OracleOracleHome92ManagementServer无法启动
- 各位高手帮忙看看这些sql语句有何问题,速度超慢
- oracle817 的问题
- 如何在oracle新建数据库
- 问一下,oracle job 自动工作,要启动哪些服务
- windows XP安装ORALCE 9I出错
group by specw,specl
(select specw a1,specl a2,max(cday) a3 from test order by specw,specl group by specw,specl) tab,test b
where tab.a1=b.specw and tab.a2=b.specl and tab.a3=b.cday
;
SELECT select specw,specl,cday from 表
group by specw,specl having CDAY in(select max CDAY from 表)
group by specw,specl having CDAY in(select max(CDAY) from 表)
SQL> select * from t;NAME STORAGE_LIFE QTY MAKE_DATE SPECW SPECL LOT_NO BARCODE CDAY
-------------------- --------------------------------------- --------------------------------------- ------------------------------------------------------------ --------------------------------------- --------------------------------------- ---------------------------------------- ---------------------------------------- -----------
aa 24 1 2007/9/2 105 20 111111 A0005 11/13/07
bb 24 1 2007/9/2 105 20 111111 A0005 11/10/07
cc 24 1 2007/9/2 88 18 111111 A0005 9/10/07
dd 20 1 2007/9/2 88 18 111111 A0005 8/10/07SQL>
SQL> select * from t a where not exists (
2 select 1 from t b where (b.SPECW=a.SPECW and b.SPECL=a.SPECL) and b.cday>a.cday
3 );NAME STORAGE_LIFE QTY MAKE_DATE SPECW SPECL LOT_NO BARCODE CDAY
-------------------- --------------------------------------- --------------------------------------- ------------------------------------------------------------ --------------------------------------- --------------------------------------- ---------------------------------------- ---------------------------------------- -----------
aa 24 1 2007/9/2 105 20 111111 A0005 11/13/07
cc 24 1 2007/9/2 88 18 111111 A0005 9/10/07