在oracle中,select 查詢語句,可以使用with,就是一個子查詢,oracle 會把子查詢的結果放到臨時表中,可以反復使用

          例子:注意,這是sql語句,不是pl/sql語句, 可以直接放到jdbc執行的

          -------------------------------------------------------------------------------------------------------------------

          with

          --入庫信息,利用子查詢,將數據預處理一次,這樣數據就很少了, 下面可以很快的反復查rkxx,

          rkxx as (select sz,zt,sum(se) se --稅種,狀態,稅額

                        from zsxx

                        where rkrq between '2007-02' and '2007-06' --條件,統計日期

                       group by sz,zt

                        )

               select sk.sz,sk.se,fk.se,znj.se

                       from (select sz,sum(se) se from rkxx --這里可以直接查詢with子查詢的結果rkxx

                                 where zt='01'

                                  group by sz) sk,--稅款

                               (select sz,sum(se) se from rkxx

                                 where zt='02'

                                  group by sz) fk,--罰款

                                  (select sz,sum(se) se from rkxx

                                 where zt='03

                                  group by sz) znj --滯納金

                        where sk.sz=fk.sz

                            and sk.sz=znj.sz

           

          -----------------------------------------------------------------------------------------------------------------------

           

          這樣,經過with預先處理好數據,然后再在處理好的數據上做查詢分析,不用再訪問原始表, 這樣效率是很高的

          注意,預先處理好的數據,一定要少, 可以把條件盡可能的加到with子查詢中,這樣后面的查詢才會更快

          posted on 2010-07-01 10:27 飛G 閱讀(132) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          主站蜘蛛池模板: 塘沽区| 尖扎县| 屏南县| 东阿县| 武威市| 徐汇区| 塔河县| 阿拉尔市| 洛宁县| 江华| 金川县| 万荣县| 合江县| 邯郸市| 临武县| 岳普湖县| 沿河| 泾源县| 香港| 鄯善县| 仲巴县| 青河县| 聂拉木县| 五指山市| 浦县| 淳安县| 永清县| 佛坪县| 威远县| 桦川县| 芒康县| 呼玛县| 赫章县| 靖江市| 河池市| 喀喇沁旗| 双桥区| 德清县| 阳江市| 合阳县| 四子王旗|