Assistance in writing Query / Query Logic.

I have a peculiar requirement to fetch data.
Table Structure ( Sample ... although real table has more fields)
Order ( orderid varchar2(30), custid varchar2(30), status varchar2(1), createdon datetime )
Sample Data:
OrderID CustID AccID Status createdon
123 111 Y 20-Jan-2012 01:29:22
124 111 100 Y 22-Jan-2012 01:23:02
125 111 100 N 23-Jan-2012 02:34:24
126 111 100 N 28-Jan-2012 04:23:22
127 111 100 N 29-Jan-2012 07:32:26
123Cancel 111 100 N 31-Jan-2012 03:27:29
I want to write 2 Queries.
a. input is OrderId, Need to find out how many order's present with status = 'N' after that orderid provided.
b. input is OrderId, Need to find out what is the previous order with status = 'Y'
Note: There can be 100's of orders and Status would be Y on first come first serve basis... if one does not have status = 'Y' ie it is 'N' the following order's will never turn to final status = 'Y'.
There are millions of records in the table.
Your help for writing this query / logic would be highly appreciated. Am intending to do thru single query.
Best Regards
MH Doshi

select count(*) from order
where createdon >( select created from order where order_id = &order_id);
and status = 'N';
select * from (select a.*, rownum rn from (select order_id from order
where status = 'Y'
and createdon<(seelect createdon from order where order_id = &order_id)
order by createdon)) where rn=1

Similar Messages

  • Help needed for writing query

    help needed for writing query
    i have the following tables(with data) as mentioned below
    FK*-foregin key (SUBJECTS)
    FK**-foregin key (COMBINATION)
    1)SUBJECTS(table name)     
    SUB_ID(NUMBER) SUB_CODE(VARCHAR2) SUB_NAME (VARCHAR2)
    2           02           Computer Science
    3           03           Physics
    4           04           Chemistry
    5           05           Mathematics
    7           07           Commerce
    8           08           Computer Applications
    9           09           Biology
    2)COMBINATION
    COMB_ID(NUMBER) COMB_NAME(VARCHAR2) SUB_ID1(NUMBER(FK*)) SUB_ID2(NUMBER(FK*)) SUB_ID3(NUMBER(FK*)) SUBJ_ID4(NUMBER(FK*))
    383           S1      9           4           2           3
    384           S2      4           2           5           3
    ---------I actually designed the ABOVE table also like this
    3) a)COMBINATION
    COMB_ID(NUMBER) COMB_NAME(VARCHAR2)
    383           S1
    384           S2
    b)COMBINATION_DET
    COMBDET_ID(NUMBER) COMB_ID(FK**) SUB_ID(FK*)
    1               383          9
    2               383          4
    3               383          2
    4               383          3
    5               384          4
    6               384          2          
    7               384          5
    8               384          3
    Business rule: a combination consists of a maximum of 4 subjects (must contain)
    and the user is less relevant to a COMB_NAME(name of combinations) but user need
    the subjects contained in combinations
    i need the following output
    COMB_ID COMB_NAME SUBJECT1 SUBJECT2      SUBJECT3      SUBJECT4
    383     S1     Biology Chemistry      Computer Science Physics
    384     S2     Chemistry Computer Science Mathematics Physics
    or even this is enough(what i actually needed)
    COMB_ID     subjects
    383           Biology,Chemistry,Computer Science,Physics
    384           Chemistry,Computer Science,Mathematics,Physics
    you can use any of the COMBINATION table(either (2) or (3))
    and i want to know
    1)which design is good in this case
    (i think SUB_ID1,SUB_ID2,SUB_ID3,SUB_ID4 is not a
    good method to link with same table but if 4 subjects only(and must) comes
    detail table is not neccessary )
    now i am achieving the result by program-coding in C# after getting the rows from oracle
    i am using oracle 9i (also ODP.NET)
    i want to know how can i get the result in the stored procedure itsef.
    2)how it could be designed in any other way.
    any help/suggestion is welcome
    thanks for your time --Pradeesh

    Well I forgot the table-alias, here now with:
    SELECT C.COMB_ID
    , C.COMB_NAME
    , (SELECT SUB_NAME
    FROM SUBJECTS
    WHERE SUB_ID = C.SUB_ID1) AS SUBJECT_NAME1
    , (SELECT SUB_NAME
    FROM SUBJECTS
    WHERE SUB_ID = C.SUB_ID2) AS SUBJECT_NAME2
    , (SELECT SUB_NAME
    FROM SUBJECTS
    WHERE SUB_ID = C.SUB_ID3) AS SUBJECT_NAME3
    , (SELECT SUB_NAME
    FROM SUBJECTS
    WHERE SUB_ID = C.SUB_ID4) AS SUBJECT_NAME4
    FROM COMBINATION C;
    As you need exactly 4 subjects, the columns-solution is just fine I would say.

  • Assistance with a query of the HRMS tables

    I need some assistance with a query I am trying to run. Here are the two tables I am trying to join:
    PER_ALL_POSITIONS
    PER_ALL_PEOPLE_F
    What I am trying to accomplish is to obtain the First_Name, Last Name from PERALL_PEOPLE_F table and then join that to the PER_ALL_POSITIONS table to obtain a unique listing of positions. However what I need assistance with is identifying how to join the two tables. I know the primary key on PER_ALL_PEOPLE_F is Person_ID but this value does not appear in PER_ALL_POSITIONS table. Any advice someone could give me would be greatly appreciated. :)

    you need to go from per_all_people_f to per_all_assignments_f, then to per_all_positions.

  • Need helping in writing query for finding percentage of duration

    Can any one please help in writing query for this.
    The table is like this :-
    ID     Region     Month     Duration
    I1 R1     Jan     80
    I2     R2     Jan     70
    I3     R1     Jan     70
    I4     R3     Jan     40
    I5     R1     Feb     80
    I6     R2     Feb     30
    I7     R3     Mar     100
    I want to write a query to find
    % of duration for each and every region against each and every month.
    Please help in solving this query. I am in urgent need of this.
    Thanks in advance.

    I also have to do in MS Access 2003You also have to ask into an other forum since here it's an Oracle forum, to try to find Oracle solution.
    Nicolas.

  • Problem in Query Logic

    Hello,
    m having a query logic problem..
    i am getting 2 id's ... from which i want to select that particular id which has a maximum date.... this i wanted to search in another table ...
    any idea ,...??

    Aijaz Mallick wrote:
    Hello,
    m having a query logic problem..
    i am getting 2 id's ... from which i want to select that particular id which has a maximum date.... this i wanted to search in another table ...
    any idea ,...??Do you mean something like this?
    SQL> ed
    Wrote file afiedt.buf
      1  with table1 as (select 1 as id, to_date('03/04/2010','DD/MM/YYYY') as start_date from dual union all
      2                  select 2, to_date('05/04/2010','DD/MM/YYYY') from dual union all
      3                  select 3, to_date('04/04/2010','DD/MM/YYYY') from dual)
      4      ,table2 as (select 1 as id, 'Fred' as emp_name from dual union all
      5                  select 2, 'Bob' from dual union all
      6                  select 3, 'Jim' from dual)
      7  --
      8  -- END OF EXAMPLE DATA
      9  --
    10  select emp_name
    11  from   table2
    12  where  id = (select id
    13               from (select id, row_number() over (order by start_date desc) as rn
    14                     from   table1
    15                    )
    16               where rn = 1
    17*             )
    SQL> /
    EMP_
    Bob
    SQL>

  • SAP QUERY -logical data base ADA

    I have created a SAP Query with logical data base ADA,I have selected four tables in it.Do i need to link these tables if yes..where and how?The report is for fields in asset master data.
    .But i get below error when i try to genaret the output :
    Fields from parallel tables within a line
    Line: 01
    Field: Asset description
    (ANLT-TXT50, table ANLT)
    Field: License plate no. of vehichle
    (ANLZ-KFZKZ, table ANLZ)
    i get such similar five messages but they are warning..when i execute with warning however i get the fields with description but not with Value.Ex:i get asset description and not Asset number as required.

    You don't have to link them, they ar linked that is the power of a logical data base
    To get the text in your report you need the key fields
    Like
    (Lanque Key)
    company code
    asset number
    Asset sub number
    Go to info sets and look to the standard ones like /SAPQUERY/AM01

  • Help needed in writing query

    Hi,
    Could anyone help me in writing below query without syntax errors.
    I tried but no luck
    select xmlelement("g", XMLATTRIBUTES(g.contentgroup_id as "id",g.groupname as "label",
    (select xmlagg(xmlelement ("c",XMLATTRIBUTES(c.title as "title",c.content_id as "id")))) as "A"))
    as "A" from
    (SELECT g.contentgroup_id AS id, g.groupname AS label, c.title AS label, c.content_id AS id
    FROM content_ec c FULL OUTER JOIN contentgroup_ec g ON c.group_id = g.contentgroup_id
    oRDER BY g.groupname ,c.title ASC );
    Any help really appreciated.
    Thanks

    Few tips to get your question answered here
    1. Give your database version. Some thing that does not work in one version works fine in the next. And 8i,9i or 10g is not version. best way to give the version is to query your v$version table like this.
    SQL> select * from v$version where rownum = 1
      2  /
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod2. You should understand we don't have what you have, meaning you should provide your data structure and some sample data for us to help.
    3. "I got an error"... "Its not working"... and the list goes on. Sentences like this does not help. If you got a error past the entire error. If stuff does not work, tell us the details.
    4. Just don't throw some output and say i want it. Please explain to every one how you derive it.
    5. And the most important thing. Use \...\ tag to format. Please.. Please.. Please.. use it. It helps every one a lot. When you use it your SQL looks some thing like this.
    SELECT xmlelement("g", XMLATTRIBUTES(g.contentgroup_id as "id",g.groupname as "label",
         (select xmlagg(xmlelement ("c",XMLATTRIBUTES(c.title as "title",c.content_id as "id")))) as "A")) as "A"
       FROM (SELECT g.contentgroup_id AS id,
                 g.groupname AS label,
                 c.title AS label,
                 c.content_id AS id
            FROM content_ec c
            FULL OUTER JOIN contentgroup_ec g
              ON c.group_id = g.contentgroup_id
           ORDER BY g.groupname ,c.title ASC );6. And also do search this forum. Most of your my queries are answered by simple search.
    Thanks,
    Karthick.

  • Infoset query logical database and transparent table

    Hi!
    We have an infoset with the data source logical database=PNP.
    We get some fields from the infotype 0768, P0768-PERNR, P0768-BEGDA, etc.
    Now we need add another table to make a join within infotype 0768 and table T5F99SE.
    For instance, in infotype 0768 I have one record with the fields PERNR and BEGDA and in the T5F99SE I have 3 records related to the unique record of infotype 0768, the fields of the table are PERNR, BEGDA, ACTDT and ADDAT .
    The fields values in the example can be:
    Infotype 0768: PERNR=00101800, BEGDA=20110401, DICOT=20, BACHE=1200
    Table T5F99SE:  record 1 PERNR=00101800, BEGDA=20110401, ACTDT=20110401, ADDAT=PB    E
                             record 2 PERNR=00101800, BEGDA=20110101, ACTDT=20110405, ADDAT=PC    E01
                             record 3 PERNR=00101800, BEGDA=20110401, ACTDT=20110409, ADDAT=PA    E
    The result we want get with infoset query is
    PERNR    BEGDA   DICOT  BACHE   ADDAT
    00101800 20110101 20        1200       PB    E
    00101800 20110101 20        1200       PC    E01
    00101800 20110101 20        1200       PA    E
    I would like to get the fields of the infotype and some fields of the table T5F99SE.
    Is possible do this action with ABAP modifying an infoset that already exists adding the fields of the transparent table?
    What should I do?
    Kind regards,
    Julian.

    My guess is that it would not be possible to include a transparent table into the LDBs PNP and PNPCE. Would need input from a technical expert there.
    However, instead of using the LDB, why don't you explore just using a direct table join? You may need to join PA0000, PA0001, PA0002 along with PA0768 and your other tables. An infoset can then be created on this table join.
    To go to the mode where you can create the table join, in your infoset transactions, choose 'Table join' instead of 'LDB'.

  • Add field in a query (logical data base)

    Hi,
    I want to add a field in a query .
    The data source of  its infoset is logical database .
    When i tried to drag and drop the field, the alv grid turned to alv list.
    Can you help me.
    thanks,
    Meriem.

    Hi Merim,
    As KAMESH mention,
    you can add  additional fields in your infoset and put the logic for that field in your infoset program and assign the same field in your existing group within infoset.
    once you assign the infoset and generate the infoset then your field will be reflected  in sap Query .
    you can add additional field in your output.
    Regards,
    Prasenjit Mishra

  • PROBLEM IN WRITING QUERY.

    HI FRIENDS,
    I AM TRYING TO WRITE A QUERY WHICH WILL RETURN ME DATE QUATER WISE.
    SUPPOSE I HAVE A DATE 19-SEP-12 THEN IT WILL CONSIDER THIS DATE BETWEEN FINANCIAL YEAR 2012-2013 AND THE RETURN ME DATE LIKE
    01-APR-12 TO 30-JUN-12
    01-JUL-12 TO 31-SEP-12
    01-OCT-12 TO 31-DEC-12
    01-JAN-13 TO 31-MAR-13
    PLEASE HELP ME IN WRITING THE QUERY.

    Hi,
    If
    TRUNC (date_column, 'Q')is the beginning of quarter x, then
    ADD_MONTHS ( TRUNC (date_column, 'Q')
            , 3
            )is the beginning of quarter x+1, and
    ADD_MONTHS ( TRUNC (date_column, 'Q')
            , 3
            ) - 1is the last day of quarter x.
    The expression above is midnight at the beginning of the last day of quarter x; be careful if you use it in a BETWEEN expression.

  • Writing query using UNION Operator

    Question -
    (1)
    Write an SQL Statement to list the following items: Customer ID, Customer Name, number of invoices, sum of total for invoices. Ensure that all customers are returned in the result set.
    Answer for the above is written as below by one person. That seams to be correct. Is there another way of writing this same query.;
    select c.CUSTOMER_ID,c.NAME,i.cnt,i.s
    from gee_customer c,(select customer_id,count(*) as cnt, sum(TOTAL) as s
    from gee_invoice
    group by customer_id) i
    where c.CUSTOMER_ID = i.customer_id (+)
    (2)
    My other question is How to write the above answer (or what you sugest) using UNION operator ?
    Any ideas please
    Message was edited by:
    user483578

    In fact the outer join means you use the union of two result sets - usual join result
    and the rows from the outer table for which there is not any row in the inner table.
    SQL> select d.deptno, e.ename from emp e, dept d
      2  where d.deptno = e.deptno(+)
      3  order by 1,2
      4  /
        DEPTNO ENAME
            10 CLARK
            10 KING
            10 MILLER
            20 ADAMS
            20 FORD
            20 JONES
            20 SCOTT
            20 SMITH
            30 ALLEN
            30 BLAKE
            30 JAMES
            30 MARTIN
            30 TURNER
            30 WARD
            40
    15 rows selected.
    SQL> select d.deptno,e.ename from emp e, dept d
      2  where d.deptno = e.deptno
      3  union
      4  select deptno, null
      5  from dept d where not exists (select null from emp e where e.deptno = d.deptno)
      6  order by 1,2
      7  /
        DEPTNO ENAME
            10 CLARK
            10 KING
            10 MILLER
            20 ADAMS
            20 FORD
            20 JONES
            20 SCOTT
            20 SMITH
            30 ALLEN
            30 BLAKE
            30 JAMES
            30 MARTIN
            30 TURNER
            30 WARD
            40
    15 rows selected.In your example something like (NOT tested !)
    with i as (select customer_id,count(*) as cnt, sum(TOTAL) as s
    from gee_invoice group by customer_id)
    select c.CUSTOMER_ID,c.NAME,i.cnt,i.s
    from gee_customer c, i
    where c.CUSTOMER_ID = i.customer_id
    union
    select c.CUSTOMER_ID,c.NAME,null,null
    from gee_customer c
    where not exists (select null from i where c.CUSTOMER_ID = i.customer_id)
    Rgds.

  • Trouble writing Query for Pivoting data from a table

    I am having a little trouble writing a query for converting the below table data into a pivot data. I am trying to write a query for which if I give a single valid report_week date as input it should give me the data for that week and also provide two extra columns, one which gives the data of last week for the same countries and the second column which gives the difference of numbers in both the columns(i.e. COUNT - COUNT_LAST_WEEK).
    REPORT_WEEK     DIVISION     COUNT
    9/26/2009     country1     81
    9/26/2009     country2     97
    9/26/2009     country3     12
    9/26/2009     country4     26
    9/26/2009     country5     101
    10/3/2009     country1     85
    10/3/2009     country2     98
    10/3/2009     country3     10
    10/3/2009     country4     24
    10/3/2009     country5     101
    10/10/2009     country1     84
    10/10/2009     country2     98
    10/10/2009     country3     10
    10/10/2009     country4     25
    10/10/2009     country5     102
    For example, if I give input as 10/10/2009, the output should be as give below.
    REPORT_WEEK     DIVISION     COUNT     COUNT_LAST_WEEK     DIFFERENCE
    10/10/2009     country1     84     85     -1
    10/10/2009     country2     98     98     0
    10/10/2009     country3     10     10     0
    10/10/2009     country4     25     24     1
    10/10/2009     country5     102     101     1
    For example, if I give input as 10/3/2009, the output should be as give below.
    REPORT_WEEK     DIVISION     COUNT     COUNT_LAST_WEEK     DIFFERENCE
    10/3/2009     country1     85     81     4
    10/3/2009     country2     98     97     1
    10/3/2009     country3     10     12     -2
    10/3/2009     country4     24     26     -2
    10/3/2009     country5     101     101     0
    Can anyone please shed some light on Query building for the above scenarios.
    Thank you
    SKP
    Edited by: user11343284 on Oct 10, 2009 7:53 AM
    Edited by: user11343284 on Oct 10, 2009 8:28 AM

    I assume there is no gap in report weeks. If so:
    SQL> variable report_week varchar2(10)
    SQL> exec :report_week := '10/10/2009'
    PL/SQL procedure successfully completed.
    with t as (
               select to_date('9/26/2009','mm/dd/yyyy') report_week,'country1' division,81 cnt from dual union all
               select to_date('9/26/2009','mm/dd/yyyy'),'country2',97 from dual union all
               select to_date('9/26/2009','mm/dd/yyyy'),'country3',12 from dual union all
               select to_date('9/26/2009','mm/dd/yyyy'),'country4',26 from dual union all
               select to_date('9/26/2009','mm/dd/yyyy'),'country5',101 from dual union all
               select to_date('10/3/2009','mm/dd/yyyy'),'country1',85 from dual union all
               select to_date('10/3/2009','mm/dd/yyyy'),'country2',98 from dual union all
               select to_date('10/3/2009','mm/dd/yyyy'),'country3',10 from dual union all
               select to_date('10/3/2009','mm/dd/yyyy'),'country4',24 from dual union all
               select to_date('10/3/2009','mm/dd/yyyy'),'country5',101 from dual union all
               select to_date('10/10/2009','mm/dd/yyyy'),'country1',84 from dual union all
               select to_date('10/10/2009','mm/dd/yyyy'),'country2',98 from dual union all
               select to_date('10/10/2009','mm/dd/yyyy'),'country3',10 from dual union all
               select to_date('10/10/2009','mm/dd/yyyy'),'country4',25 from dual union all
               select to_date('10/10/2009','mm/dd/yyyy'),'country5',102 from dual
    select  max(report_week) report_week,
            division,
            max(cnt) keep(dense_rank last order by report_week) cnt_this_week,
            max(cnt) keep(dense_rank first order by report_week) cnt_last_week,
            max(cnt) keep(dense_rank last order by report_week) - max(cnt) keep(dense_rank first order by report_week) difference
      from  t
      where report_week in (to_date(:report_week,'mm/dd/yyyy'),to_date(:report_week,'mm/dd/yyyy') - 7)
      group by division
      order by division
    REPORT_WE DIVISION CNT_THIS_WEEK CNT_LAST_WEEK DIFFERENCE
    10-OCT-09 country1            84            85         -1
    10-OCT-09 country2            98            98          0
    10-OCT-09 country3            10            10          0
    10-OCT-09 country4            25            24          1
    10-OCT-09 country5           102           101          1
    SQL> exec :report_week := '10/3/2009'
    PL/SQL procedure successfully completed.
    SQL> /
    REPORT_WE DIVISION CNT_THIS_WEEK CNT_LAST_WEEK DIFFERENCE
    03-OCT-09 country1            85            81          4
    03-OCT-09 country2            98            97          1
    03-OCT-09 country3            10            12         -2
    03-OCT-09 country4            24            26         -2
    03-OCT-09 country5           101           101          0
    SQL> SY.

  • Date selection in query : logic needed!

    Hi,
    we have one calendar day depending on which the query result is displayed!
    Now the requirement is such that when user enters one date the query has to generate the result for the multiple date ranges including the one which he has entered.
    example: if user has entered 15/9/2007 then query should not only display the result of the date 15/9/2007 but also the results of  -5 to +2 ( means 10/9,11/9,12/9,13/9 and 14/9 plus 16/9 and 17/9 )
    simlarly other ranges like -8 to + 7 and so on
    How to define this in query?
    Thanks,
    Ravi

    Hello ,
    I need to make a graph conveying the information of the deliveries by comparing the goods issue date and promised date !
    report also requires how many deliveries were on time, how many were late and how many were early!
    for this requirement, i had thought of making a date selection field which is promised date and make furthur more date ranges selections by query it self so that late deliveries and early deliveries also covered in these date ranges.
    -5 to + 2 is that one range which is on time delivery range
    if the delivery is more eally than the -5 days then it is early delivery. even in ealry delivery i want to make how early it is.
    and suppose the delivery has crossed the promised date 2 days more then it is late delivery.
    all has to be acheived by single date selection and there after the logic which takes care of all the date ranges i had explained.
    i am looking for that logic which i am not finding
    Hope this is clear now
    Thanks,
    Ravi

  • JPA/Toplink changes the query logic

    Hi,
    Iam currently using JPA with Toplink implementation , i guess that toplink has its own way of optimizing the provided JPA query ; on another words , toplink sometimes changes the way you are using joins and exists statement to what looks optimized , but unfor. this caused me troubles tracking a query that should work on a certain way but its not cause the generated query by Toplink ( can be captured on the log ) does not represent the same logic , is this a known issue or do i have to write my JPA query on a way on which can be translated correctly by toplink , i know i should provide the query it self , but the model structure is too complex.
    Thanks in advance

    Hello,
    JPQL does not directly translate to SQL, so there might be some differences in what you may be expecting due to JPA requirements on the results that are returned. If there is a problem with specific queries, please let us know and file a bug if it is not behaving the way it should. A workaround would be to use a native SQL query directly.
    Best Regards,
    Chris

  • FI-SD data-BEx Query Logic for Amount received for the Lasts F.Year Sales

    Hi Friends,
    Need your assistance in designing one BEx Query,
    We have Two cubes...one is sales ZSALES01 and Account Receivables ZFIAR01. On top of these cubes e built Multiprovider.
    In the sales cube (ZSALES01)., we have calender day, Financial year , Fiscal period characteristics as time characteristics and Net Values as key figures. And Same way in the Account recievable cube (ZFIAR01) we have calender day( Which is mapped with Posting date), Financial year , Fiscal period characteristics as time characteristics and Credit/Debit amount as key figure.
    My requiremnt is that i have to show in BEx with below scenarios.......
    1.Amount received for the sales occured till Last Financial year
    2. Amount Received for the sales occured in this current financial year
    We have two show these values for company code wise , we have company code in both cubes nad we  have financial year...and some other common fields there in both cubes.
    Can you please guide me how to design the same in BE query.
    Thanks & Regards,
    Anand

    are you saying that in your query you need to have 4 columns;
    - Sales Last Year
    - Sales Current Year
    - AR for Sales (LY+CY)
    - AR for Sales Current Year
    If yes, getting Sales Information is easy. You need to use customer exit variable to get the current year (calendar or fiscal)
    - for Sales Last Year, use customer exit variable for current year with a offset of -1
    - for Saels Current Year, use customer exit variable for current year
    For AR columns, as I said in my earlier post - use a lookup while loading data in AR cube. Use the Sales Doc Number and get the year information (calendar, financial or fiscal - whatever you want to use depending on your requirement) from Sales flow. This way you can tell if a particular FI doucment is for this year's sales or last year's sales.
    Now, you can use another customer exit variable for AR column depending on the "Sales Year" infoboject. Customer exit variable shold be populated with the current Sales Year.
    - for AR for Sales CY, use this customer exit variable
    - for AR for Sales LY, use this customer exit variable with offset of -1
    - AR for Saels (LY+CY), add both the columns above
    Another way of achieving AR for Sales (LY+CY) is to restrict the RKF or value range using customer exit variable for Sales year with BETWEEN operator (From var1 to (var1-1)).
    You can also use the option of replacment path variable as Durgesh mentioned. but in that case you will have to create two addition queries based on sales data which will return:
    - sales documents for last year
    - sales documents for current year
    then you need to create two replacement path variables for AR columns which will get values from these two queries.
    I hope it helps.
    Regards,
    Gaurav

Maybe you are looking for