Didn't they come in with Oracle 8i?

I could not find anything analytical in the online documentation (than
again couldn't find the 8.0.5 warehouse guide either)

I'm unfortunately on 8.0.5 for this one


Jack


                                                                                       
                                                
                      Connor McDonald                                                  
                                                
                      <[EMAIL PROTECTED]        To:       Multiple recipients of list 
ORACLE-L <[EMAIL PROTECTED]>                   
                      uk>                      cc:       (bcc: Jack van 
Zanen/nlzanen1/External/MEY/NL)                                
                      Sent by:                 Subject:  Re: Rolling sums (?)          
                                                
                      [EMAIL PROTECTED]                                                 
                                                
                                                                                       
                                                
                                                                                       
                                                
                      15-08-2002 16:28                                                 
                                                
                      Please respond to                                                
                                                
                      ORACLE-L                                                         
                                                
                                                                                       
                                                
                                                                                       
                                                



Take a look at the windowing functions under 'ana;ytic
functions' in the data warehouse guide...They are very
very cool..

hth
connor

 --- Jack van Zanen <[EMAIL PROTECTED]> wrote: > Maybe
having a bad hairday but following code will
> give me for every period
> number the sum of all work in progress for the
> period plus the previous 12
> periods. Basically it takes the period number from
> the current record and
> sums a column of that record with the previous 12
> periods.
>
> year  period      value
> 2000  1     1
> 2000  2     2
> 2000  3     3
> 2000  4     4
> 2000  5     5
> 2000  6     6
> 2000  7     7
> 2000  8     8
> 2000  9     9
> 2000  10    10
> 2000  11    11
> 2000  12    12
> 2001  1     13
> 2001  2     14
> 2001  3     15
>
> So for period 2001 1 I need the values 1 thru 13
> added together (91)
> Period 2001 2 needs to be the values 2 thru 14 added
> together (104)
> etc....
>
> As you maybe can imagine the explain plan for this
> baby is 4 full
> tablescans on quite large tables. (see below)
>
> My question is if somebody has a better solution to
> handle this query?????
>
> Oracle 8.0.5 !!!
> AIX 4.3.3
>
>
> SELECT      V1.ENGAGEMENT
> ,     V1.YEAR
> ,     V1.PERIOD
> ,     MAX(V1.NET_FEE_EARNED_PTD)
> ,     MAX(V1.EXP_WIP_VAL_PTD)
> ,     SUM(V2.TIME_WIP_VAL)
> ,     MAX(V1.GNRL_WON)
> ,     MAX(V1.GNRL_WOFF)
> ,     MAX(V1.TIME_WOFF)
> ,     MAX(V1.WIP_PROV)
> ,     MAX(V1.EXP_WOFF)
> ,     MAX(V1.DB_WOFF)
> ,     MAX(V1.DB_PROV)
> FROM
> (
> select            max(WSTAT.ENG_NUMB) AS ENGAGEMENT,
>             max(WSTAT.FNANCL_YEAR) AS YEAR,
>             max(WSTAT.PRD_NUMB) AS PERIOD,
>             SUM(NVL(WSTAT.TIME_WIP_VAL_PTD, 0))
>             + SUM(NVL(WSTAT.GNRL_W_ON_PTD, 0))
>             - SUM(NVL(WSTAT.GNRL_W_OFF_PTD, 0))
>             - SUM(NVL(WSTAT.TIME_WIP_VAL_W_OFF_PTD,
> 0))
>             - SUM(NVL(WSTAT.WIP_PRVSN_PTD, 0))
>             - SUM(NVL(WSTAT.EXP_WIP_VAL_W_OFF_PTD,
> 0))
>             - SUM(NVL(DSTAT.DBTRS_W_OFF_PTD, 0))
>             - SUM(NVL(DSTAT.DBTRS_PRVSN_PTD, 0))
> NET_FEE_EARNED_PTD,
>             SUM(NVL(WSTAT.EXP_WIP_VAL_PTD,0))
> EXP_WIP_VAL_PTD,
>             SUM(NVL(WSTAT.TIME_WIP_VAL_PTD, 0))
> TIME_WIP_VAL,
>             SUM(NVL(WSTAT.GNRL_W_ON_PTD, 0))
> GNRL_WON,
>             SUM(NVL(WSTAT.GNRL_W_OFF_PTD, 0))
> GNRL_WOFF,
>             SUM(NVL(WSTAT.TIME_WIP_VAL_W_OFF_PTD,
> 0)) TIME_WOFF,
>             SUM(NVL(WSTAT.WIP_PRVSN_PTD, 0))
> WIP_PROV,
>             SUM(NVL(WSTAT.EXP_WIP_VAL_W_OFF_PTD, 0))
> EXP_WOFF,
>             SUM(NVL(DSTAT.DBTRS_W_OFF_PTD, 0))
> DB_WOFF,
>             SUM(NVL(DSTAT.DBTRS_PRVSN_PTD, 0))
> DB_PROV
> FROM        ENG_WIP_STATS WSTAT,
>             ENG_DBTRS_STATS DSTAT
> WHERE             WSTAT.ENG_NUMB(+)=DSTAT.ENG_NUMB
> AND         WSTAT.FNANCL_YEAR=DSTAT.FNANCL_YEAR
> AND         WSTAT.PRD_NUMB=DSTAT.PRD_NUMB
> GROUP BY    WSTAT.ENG_NUMB,
>             WSTAT.FNANCL_YEAR,
>             WSTAT.PRD_NUMB
> ) v1,
> (
> select            max(WSTAT.ENG_NUMB) AS ENGAGEMENT,
>             max(WSTAT.FNANCL_YEAR) AS YEAR,
>             max(WSTAT.PRD_NUMB) AS PERIOD,
>             SUM(NVL(WSTAT.TIME_WIP_VAL_PTD, 0))
>             + SUM(NVL(WSTAT.GNRL_W_ON_PTD, 0))
>             - SUM(NVL(WSTAT.GNRL_W_OFF_PTD, 0))
>             - SUM(NVL(WSTAT.TIME_WIP_VAL_W_OFF_PTD,
> 0))
>             - SUM(NVL(WSTAT.WIP_PRVSN_PTD, 0))
>             - SUM(NVL(WSTAT.EXP_WIP_VAL_W_OFF_PTD,
> 0))
>             - SUM(NVL(DSTAT.DBTRS_W_OFF_PTD, 0))
>             - SUM(NVL(DSTAT.DBTRS_PRVSN_PTD, 0))
> NET_FEE_EARNED_PTD,
>             SUM(NVL(WSTAT.EXP_WIP_VAL_PTD,0))
> EXP_WIP_VAL_PTD,
>             SUM(NVL(WSTAT.TIME_WIP_VAL_PTD, 0))
> TIME_WIP_VAL,
>             SUM(NVL(WSTAT.GNRL_W_ON_PTD, 0))
> GNRL_WON,
>             SUM(NVL(WSTAT.GNRL_W_OFF_PTD, 0))
> GNRL_WOFF,
>             SUM(NVL(WSTAT.TIME_WIP_VAL_W_OFF_PTD,
> 0)) TIME_WOFF,
>             SUM(NVL(WSTAT.WIP_PRVSN_PTD, 0))
> WIP_PROV,
>             SUM(NVL(WSTAT.EXP_WIP_VAL_W_OFF_PTD, 0))
> EXP_WOFF,
>             SUM(NVL(DSTAT.DBTRS_W_OFF_PTD, 0))
> DB_WOFF,
>             SUM(NVL(DSTAT.DBTRS_PRVSN_PTD, 0))
> DB_PROV
> FROM        ENG_WIP_STATS WSTAT,
>             ENG_DBTRS_STATS DSTAT
> WHERE             WSTAT.ENG_NUMB(+)=DSTAT.ENG_NUMB
> AND         WSTAT.FNANCL_YEAR=DSTAT.FNANCL_YEAR
> AND         WSTAT.PRD_NUMB=DSTAT.PRD_NUMB
> GROUP BY    WSTAT.ENG_NUMB,
>             WSTAT.FNANCL_YEAR,
>             WSTAT.PRD_NUMB
> ) V2
> WHERE v1.ENGAGEMENT=V2.ENGAGEMENT(+)
> AND   TO_DATE(V2.YEAR(+)||V2.PERIOD(+),'YYYYMM') >=
> ADD_MONTHS(TO_DATE(V1.YEAR||V1.PERIOD,'YYYYMM'),-12)
> AND   TO_DATE(V2.YEAR(+)||V2.PERIOD(+),'YYYYMM') <=
> TO_DATE(V1.YEAR||V1.PERIOD,'YYYYMM')
> GROUP BY V1.ENGAGEMENT
> ,     V1.YEAR
> ,     V1.PERIOD
>
>
>
> Explain plan:
>
>    ID   PID QUERY_PLAN
> ----- -----
>
------------------------------------------------------------------------------------

>     0       SELECT STATEMENT   Cost = 12531921
>     1     0   SORT GROUP BY  Card=62754915
>     2     1     MERGE JOIN OUTER  Card=62754915
>     3     2       SORT JOIN  Card=1584360
>     4     3         VIEW   Card=1584360
>     5     4           SORT GROUP BY  Card=1584360
>     6     5             FILTER   Card=
>     7     6               MERGE JOIN OUTER  Card=
>     8     7                 SORT JOIN  Card=1354977
>     9     8                   TABLE ACCESS FULL
> ENG_DBTRS_STATS
> Card=1354977
>    10     7                 SORT JOIN  Card=1956365
>    11    10                   TABLE ACCESS FULL
> ENG_WIP_STATS Card=1956365
>    12     2       FILTER   Card=
>    13    12         SORT JOIN  Card=
>    14    13           VIEW   Card=1584360
>    15    14             SORT GROUP BY  Card=1584360
>    16    15               FILTER   Card=
>    17    16                 MERGE JOIN OUTER  Card=
>    18    17                   SORT JOIN
> Card=1354977
>    19    18                     TABLE ACCESS FULL
> ENG_DBTRS_STATS
> Card=1354977
>    20    17                   SORT JOIN
> Card=1956365
>    21    20                     TABLE ACCESS FULL
> ENG_WIP_STATS
> Card=1956365
>
>
> THX
>
>
===================================================================
> De informatie verzonden in dit e-mailbericht is
> vertrouwelijk en is
> uitsluitend bestemd voor de geadresseerde.
> Openbaarmaking,
> vermenigvuldiging, verspreiding en/of verstrekking
> van deze informatie aan
> derden is, behoudens voorafgaande schriftelijke
> toestemming van Ernst &
> Young, niet toegestaan. Ernst & Young staat niet in
> voor de juiste en
> volledige overbrenging van de inhoud van een
> verzonden e-mailbericht, noch
> voor tijdige ontvangst daarvan. Ernst & Young kan
> niet garanderen dat een
> verzonden e-mailbericht vrij is van virussen, noch
> dat e-mailberichten
> worden overgebracht zonder inbreuk of tussenkomst
> van onbevoegde derden.
>
> Indien bovenstaand e-mailbericht niet aan u is
> gericht, verzoeken wij u
> vriendelijk doch dringend het e-mailbericht te
> retourneren aan de verzender
> en het origineel en eventuele kopieën te verwijderen
> en te vernietigen.
>
> Ernst & Young hanteert bij de uitoefening van haar
> werkzaamheden algemene
> voorwaarden, waarin een beperking van
> aansprakelijkheid is opgenomen. De
> algemene voorwaarden worden u op verzoek kosteloos
> toegezonden.
>
=====================================================================
> The information contained in this communication is
> confidential and is
> intended solely for the use of the individual or
> entity to whom it is
> addressed. You should not copy, disclose or
> distribute this communication
> without the authority of Ernst & Young. Ernst &
> Young is neither liable for
> the proper and complete transmission of the
> information contained in this
> communication nor for any delay in its receipt.
> Ernst & Young does not
> guarantee that the integrity of this communication
> has been maintained nor
> that the communication is free of viruses,
> interceptions or interference.
>
> If you are not the intended recipient of this
> communication please return
> the communication to the sender and delete and
> destroy all copies.
>
> In carrying out its engagements, Ernst & Young
> applies general terms and
> conditions, which contain a clause that limits its
> liability. A copy of
> these terms and conditions is available on request
> free of charge.
>
===================================================================
>
>
>
>
>
> --
> Please see the official ORACLE-L FAQ:
> http://www.orafaq.com
> --
> Author: Jack van Zanen
>   INET: [EMAIL PROTECTED]
>
> Fat City Network Services    -- (858) 538-5051  FAX:
> (858) 538-5051
> San Diego, California        -- Public Internet
> access / Mailing Lists
>
--------------------------------------------------------------------
> To REMOVE yourself from this mailing list, send an
> E-Mail message
> to: [EMAIL PROTECTED] (note EXACT spelling of
> 'ListGuru') and in
> the message BODY, include a line containing: UNSUB
> ORACLE-L
> (or the name of mailing list you want to be removed
> from).  You may
> also send the HELP command for other information
> (like subscribing).

=====
Connor McDonald
http://www.oracledba.co.uk
http://www.oaktable.net

"Remember amateurs built the ark - Professionals built the Titanic"

__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com
--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: =?iso-8859-1?q?Connor=20McDonald?=
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).



===================================================================
De informatie verzonden in dit e-mailbericht is vertrouwelijk en is
uitsluitend bestemd voor de geadresseerde. Openbaarmaking,
vermenigvuldiging, verspreiding en/of verstrekking van deze informatie aan
derden is, behoudens voorafgaande schriftelijke toestemming van Ernst &
Young, niet toegestaan. Ernst & Young staat niet in voor de juiste en
volledige overbrenging van de inhoud van een verzonden e-mailbericht, noch
voor tijdige ontvangst daarvan. Ernst & Young kan niet garanderen dat een
verzonden e-mailbericht vrij is van virussen, noch dat e-mailberichten
worden overgebracht zonder inbreuk of tussenkomst van onbevoegde derden.

Indien bovenstaand e-mailbericht niet aan u is gericht, verzoeken wij u
vriendelijk doch dringend het e-mailbericht te retourneren aan de verzender
en het origineel en eventuele kopieën te verwijderen en te vernietigen.

Ernst & Young hanteert bij de uitoefening van haar werkzaamheden algemene
voorwaarden, waarin een beperking van aansprakelijkheid is opgenomen. De
algemene voorwaarden worden u op verzoek kosteloos toegezonden.
=====================================================================
The information contained in this communication is confidential and is
intended solely for the use of the individual or entity to whom it is
addressed. You should not copy, disclose or distribute this communication
without the authority of Ernst & Young. Ernst & Young is neither liable for
the proper and complete transmission of the information contained in this
communication nor for any delay in its receipt. Ernst & Young does not
guarantee that the integrity of this communication has been maintained nor
that the communication is free of viruses, interceptions or interference.

If you are not the intended recipient of this communication please return
the communication to the sender and delete and destroy all copies.

In carrying out its engagements, Ernst & Young applies general terms and
conditions, which contain a clause that limits its liability. A copy of
these terms and conditions is available on request free of charge.
===================================================================






--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: Jack van Zanen
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to