|
|
leonarding 发表于 2014-6-19 12:47 ![]()
18#的报错了,group by 中不能有 星号 吧 例如 a.*
如下2中都可以, 效率估计都差不多
--method 1
SQL> select a.iid,
2 a.COPERATIONID,
3 a.CURRENCYKINDCODE,
4 a.VALIDITYFLAG,
5 b.contractinuredate,
6 b.contractpausedate,
7 max(c.rentalsum) max_rentalsum
8 from finances_sum a,
9 finances_con b,
10 finances_ren c
11 where a.coperationid = b.coperationid
12 and a.coperationid = c.coperationid
13 and a.validityflag = '1'
14 and c.validityflag = '1'
15 group by a.iid,
16 a.COPERATIONID,
17 a.CURRENCYKINDCODE,
18 a.VALIDITYFLAG,
19 b.contractinuredate,
20 b.contractpausedate
21 order by 1;
IID COPERATIONID CURRENCYKINDCODE VALIDITYFLAG CONTRACTINUREDATE CONTRACTPAUSEDATE MAX_RENTALSUM
---------- ------------ ---------------- ------------ ----------------- ----------------- --------------------
185 62 CNY 1 2014/1/1 2014/12/31 500000
186 62 ENU 1 2014/1/1 2014/12/31 500000
187 61 CNY 1 2014/1/1 2014/12/31 500000
188 61 ENU 1 2014/1/1 2014/12/31 500000
189 60 CNY 1 2014/1/1 2014/12/31 50
190 59 CNY 1 2014/1/1 2014/12/31 300000
191 58 CNY 1 2014/1/1 2014/12/31 400000
192 57 CNY 1 2010/3/8 2010/5/8 500
8 rows selected
SQL>
--method 2
SQL> select t1.iid,
2 t1.COPERATIONID,
3 t1.CURRENCYKINDCODE,
4 t1.VALIDITYFLAG,
5 t1.contractinuredate,
6 t1.contractpausedate,
7 t2.max_rentalsum
8 from (select a.iid,
9 a.COPERATIONID,
10 a.CURRENCYKINDCODE,
11 a.VALIDITYFLAG,
12 b.contractinuredate,
13 b.contractpausedate
14 from finances_sum a, finances_con b
15 where a.validityflag = '1'
16 and a.coperationid = b.coperationid) t1,
17 (select coperationid,
18 max(rentalsum) max_rentalsum
19 from finances_ren
20 where validityflag = '1'
21 group by coperationid) t2
22 where t1.coperationid = t2.coperationid
23 order by t1.iid;
IID COPERATIONID CURRENCYKINDCODE VALIDITYFLAG CONTRACTINUREDATE CONTRACTPAUSEDATE MAX_RENTALSUM
---------- ------------ ---------------- ------------ ----------------- ----------------- --------------------
185 62 CNY 1 2014/1/1 2014/12/31 500000
186 62 ENU 1 2014/1/1 2014/12/31 500000
187 61 CNY 1 2014/1/1 2014/12/31 500000
188 61 ENU 1 2014/1/1 2014/12/31 500000
189 60 CNY 1 2014/1/1 2014/12/31 50
190 59 CNY 1 2014/1/1 2014/12/31 300000
191 58 CNY 1 2014/1/1 2014/12/31 400000
192 57 CNY 1 2010/3/8 2010/5/8 500
8 rows selected
SQL>
|
|