Select Query problem....too urgent

Hi all!
I am running oracle 8i.
I have a table named taxsuamry. I want to arrange the data by exepenses in desc order and after sorting, i want to select first 50 records.
I supplied the follwoing query:
select expenses from taxsuamry
where rownum<51
order by expenses desc;
but it selects 50 records first and then sorts them...i want sorting first and then top 50 rerods from sorted data.
Can anybody help me plz

hello,riaz
If it is optimization kind of problem for your sorting first ...then u can go for following way...
select /*+ index(empid) */ empid from emp where rownum <51 order by empid desc
.........where empid is attribute where u have index on it....
null

Similar Messages

  • SELECT query takes too much time! Y?

    Plz find my SELECT query below:
    select w~mandt
    wvbeln wposnr wmeins wmatnr wwerks wnetwr
    wkwmeng wvrkme wmatwa wcharg w~pstyv
    wposar wprodh wgrkor wantlf wkztlf wlprio
    wvstel wroute wumvkz wumvkn wabgru wuntto
    wawahr werdat werzet wfixmg wprctr wvpmat
    wvpwrk wmvgr1 wmvgr2 wmvgr3 wmvgr4 wmvgr5
    wbedae wcuobj w~mtvfp
    xetenr xwmeng xbmeng xettyp xwepos xabart
    x~edatu
    xtddat xmbdat xlddat xwadat xabruf xetart
    x~ezeit
    into table t_vbap
    from vbap as w
    inner join vbep as x on xvbeln = wvbeln and
    xposnr = wposnr and
    xmandt = wmandt
    where
    ( ( werdat > pre_dat ) and ( werdat <= w_date ) ) and
    ( ( ( erdat > pre_dat and erdat < p_syndt ) or
    ( erdat = p_syndt and erzet <= p_syntm ) ) ) and
    w~matnr in s_matnr and
    w~pstyv in s_itmcat and
    w~lfrel in s_lfrel and
    w~abgru = ' ' and
    w~kwmeng > 0 and
    w~mtvfp in w_mtvfp and
    x~ettyp in w_ettyp and
    x~bdart in s_req_tp and
    x~plart in s_pln_tp and
    x~etart in s_etart and
    x~abart in s_abart and
    ( ( xlifsp in s_lifsp ) or ( xlifsp = ' ' ) ).
    The problem: It takes too much time while executing this statement.
    Could anybody change this statement and help me out to reduce the DB Access time?
    Thx

    Ways of Performance Tuning
    1.     Selection Criteria
    2.     Select Statements
    •     Select Queries
    •     SQL Interface
    •     Aggregate Functions
    •     For all Entries
    Select Over more than one internal table
    Selection Criteria
    1.     Restrict the data to the selection criteria itself, rather than filtering it out using the ABAP code using CHECK statement. 
    2.     Select with selection list.
    SELECT * FROM SBOOK INTO SBOOK_WA.
      CHECK: SBOOK_WA-CARRID = 'LH' AND
             SBOOK_WA-CONNID = '0400'.
    ENDSELECT.
    The above code can be much more optimized by the code written below which avoids CHECK, selects with selection list
    SELECT  CARRID CONNID FLDATE BOOKID FROM SBOOK INTO TABLE T_SBOOK
      WHERE SBOOK_WA-CARRID = 'LH' AND
                  SBOOK_WA-CONNID = '0400'.
    Select Statements   Select Queries
    1.     Avoid nested selects
    SELECT * FROM EKKO INTO EKKO_WA.
      SELECT * FROM EKAN INTO EKAN_WA
          WHERE EBELN = EKKO_WA-EBELN.
      ENDSELECT.
    ENDSELECT.
    The above code can be much more optimized by the code written below.
    SELECT PF1 PF2 FF3 FF4 INTO TABLE ITAB
        FROM EKKO AS P INNER JOIN EKAN AS F
          ON PEBELN = FEBELN.
    Note: A simple SELECT loop is a single database access whose result is passed to the ABAP program line by line. Nested SELECT loops mean that the number of accesses in the inner loop is multiplied by the number of accesses in the outer loop. One should therefore use nested SELECT loops only if the selection in the outer loop contains very few lines or the outer loop is a SELECT SINGLE statement.
    2.     Select all the records in a single shot using into table clause of select statement rather than to use Append statements.
    SELECT * FROM SBOOK INTO SBOOK_WA.
      CHECK: SBOOK_WA-CARRID = 'LH' AND
             SBOOK_WA-CONNID = '0400'.
    ENDSELECT.
    The above code can be much more optimized by the code written below which avoids CHECK, selects with selection list and puts the data in one shot using into table
    SELECT  CARRID CONNID FLDATE BOOKID FROM SBOOK INTO TABLE T_SBOOK
      WHERE SBOOK_WA-CARRID = 'LH' AND
                  SBOOK_WA-CONNID = '0400'.
    3.     When a base table has multiple indices, the where clause should be in the order of the index, either a primary or a secondary index.
    To choose an index, the optimizer checks the field names specified in the where clause and then uses an index that has the same order of the fields. In certain scenarios, it is advisable to check whether a new index can speed up the performance of a program. This will come handy in programs that access data from the finance tables.
    4.     For testing existence, use Select.. Up to 1 rows statement instead of a Select-Endselect-loop with an Exit. 
    SELECT * FROM SBOOK INTO SBOOK_WA
      UP TO 1 ROWS
      WHERE CARRID = 'LH'.
    ENDSELECT.
    The above code is more optimized as compared to the code mentioned below for testing existence of a record.
    SELECT * FROM SBOOK INTO SBOOK_WA
        WHERE CARRID = 'LH'.
      EXIT.
    ENDSELECT.
    5.     Use Select Single if all primary key fields are supplied in the Where condition .
    If all primary key fields are supplied in the Where conditions you can even use Select Single.
    Select Single requires one communication with the database system, whereas Select-Endselect needs two.
    Select Statements SQL Interface
    1.     Use column updates instead of single-row updates
    to update your database tables.
    SELECT * FROM SFLIGHT INTO SFLIGHT_WA.
      SFLIGHT_WA-SEATSOCC =
        SFLIGHT_WA-SEATSOCC - 1.
      UPDATE SFLIGHT FROM SFLIGHT_WA.
    ENDSELECT.
    The above mentioned code can be more optimized by using the following code
    UPDATE SFLIGHT
           SET SEATSOCC = SEATSOCC - 1.
    2.     For all frequently used Select statements, try to use an index.
    SELECT * FROM SBOOK CLIENT SPECIFIED INTO SBOOK_WA
      WHERE CARRID = 'LH'
        AND CONNID = '0400'.
    ENDSELECT.
    The above mentioned code can be more optimized by using the following code
    SELECT * FROM SBOOK CLIENT SPECIFIED INTO SBOOK_WA
      WHERE MANDT IN ( SELECT MANDT FROM T000 )
        AND CARRID = 'LH'
        AND CONNID = '0400'.
    ENDSELECT.
    3.     Using buffered tables improves the performance considerably.
    Bypassing the buffer increases the network considerably
    SELECT SINGLE * FROM T100 INTO T100_WA
      BYPASSING BUFFER
      WHERE     SPRSL = 'D'
            AND ARBGB = '00'
            AND MSGNR = '999'.
    The above mentioned code can be more optimized by using the following code
    SELECT SINGLE * FROM T100  INTO T100_WA
      WHERE     SPRSL = 'D'
            AND ARBGB = '00'
            AND MSGNR = '999'.
    Select Statements  Aggregate Functions
    •     If you want to find the maximum, minimum, sum and average value or the count of a database column, use a select list with aggregate functions instead of computing the aggregates yourself.
    Some of the Aggregate functions allowed in SAP are  MAX, MIN, AVG, SUM, COUNT, COUNT( * )
    Consider the following extract.
                Maxno = 0.
                Select * from zflight where airln = ‘LF’ and cntry = ‘IN’.
                 Check zflight-fligh > maxno.
                 Maxno = zflight-fligh.
                Endselect.
    The  above mentioned code can be much more optimized by using the following code.
    Select max( fligh ) from zflight into maxno where airln = ‘LF’ and cntry = ‘IN’.
    Select Statements  For All Entries
    •     The for all entries creates a where clause, where all the entries in the driver table are combined with OR. If the number of entries in the driver table is larger than rsdb/max_blocking_factor, several similar SQL statements are executed to limit the length of the WHERE clause.
         The plus
    •     Large amount of data
    •     Mixing processing and reading of data
    •     Fast internal reprocessing of data
    •     Fast
         The Minus
    •     Difficult to program/understand
    •     Memory could be critical (use FREE or PACKAGE size)
    Points to be must considered FOR ALL ENTRIES
    •     Check that data is present in the driver table
    •     Sorting the driver table
    •     Removing duplicates from the driver table
    Consider the following piece of extract
              Loop at int_cntry.
      Select single * from zfligh into int_fligh
      where cntry = int_cntry-cntry.
      Append int_fligh.
                          Endloop.
    The above mentioned can be more optimized by using the following code.
    Sort int_cntry by cntry.
    Delete adjacent duplicates from int_cntry.
    If NOT int_cntry[] is INITIAL.
                Select * from zfligh appending table int_fligh
                For all entries in int_cntry
                Where cntry = int_cntry-cntry.
    Endif.
    Select Statements Select Over more than one Internal table
    1.     Its better to use a views instead of nested Select statements.
    SELECT * FROM DD01L INTO DD01L_WA
      WHERE DOMNAME LIKE 'CHAR%'
            AND AS4LOCAL = 'A'.
      SELECT SINGLE * FROM DD01T INTO DD01T_WA
        WHERE   DOMNAME    = DD01L_WA-DOMNAME
            AND AS4LOCAL   = 'A'
            AND AS4VERS    = DD01L_WA-AS4VERS
            AND DDLANGUAGE = SY-LANGU.
    ENDSELECT.
    The above code can be more optimized by extracting all the data from view DD01V_WA
    SELECT * FROM DD01V INTO  DD01V_WA
      WHERE DOMNAME LIKE 'CHAR%'
            AND DDLANGUAGE = SY-LANGU.
    ENDSELECT
    2.     To read data from several logically connected tables use a join instead of nested Select statements. Joins are preferred only if all the primary key are available in WHERE clause for the tables that are joined. If the primary keys are not provided in join the Joining of tables itself takes time.
    SELECT * FROM EKKO INTO EKKO_WA.
      SELECT * FROM EKAN INTO EKAN_WA
          WHERE EBELN = EKKO_WA-EBELN.
      ENDSELECT.
    ENDSELECT.
    The above code can be much more optimized by the code written below.
    SELECT PF1 PF2 FF3 FF4 INTO TABLE ITAB
        FROM EKKO AS P INNER JOIN EKAN AS F
          ON PEBELN = FEBELN.
    3.     Instead of using nested Select loops it is often better to use subqueries.
    SELECT * FROM SPFLI
      INTO TABLE T_SPFLI
      WHERE CITYFROM = 'FRANKFURT'
        AND CITYTO = 'NEW YORK'.
    SELECT * FROM SFLIGHT AS F
        INTO SFLIGHT_WA
        FOR ALL ENTRIES IN T_SPFLI
        WHERE SEATSOCC < F~SEATSMAX
          AND CARRID = T_SPFLI-CARRID
          AND CONNID = T_SPFLI-CONNID
          AND FLDATE BETWEEN '19990101' AND '19990331'.
    ENDSELECT.
    The above mentioned code can be even more optimized by using subqueries instead of for all entries.
    SELECT * FROM SFLIGHT AS F INTO SFLIGHT_WA
        WHERE SEATSOCC < F~SEATSMAX
          AND EXISTS ( SELECT * FROM SPFLI
                         WHERE CARRID = F~CARRID
                           AND CONNID = F~CONNID
                           AND CITYFROM = 'FRANKFURT'
                           AND CITYTO = 'NEW YORK' )
          AND FLDATE BETWEEN '19990101' AND '19990331'.
    ENDSELECT.
    1.     Table operations should be done using explicit work areas rather than via header lines.
    READ TABLE ITAB INTO WA WITH KEY K = 'X‘ BINARY SEARCH.
    IS MUCH FASTER THAN USING
    READ TABLE ITAB INTO WA WITH KEY K = 'X'.
    If TAB has n entries, linear search runs in O( n ) time, whereas binary search takes only O( log2( n ) ).
    2.     Always try to use binary search instead of linear search. But don’t forget to sort your internal table before that.
    READ TABLE ITAB INTO WA WITH KEY K = 'X'. IS FASTER THAN USING
    READ TABLE ITAB INTO WA WITH KEY (NAME) = 'X'.
    3.     A dynamic key access is slower than a static one, since the key specification must be evaluated at runtime.
    4.     A binary search using secondary index takes considerably less time.
    5.     LOOP ... WHERE is faster than LOOP/CHECK because LOOP ... WHERE evaluates the specified condition internally.
    LOOP AT ITAB INTO WA WHERE K = 'X'.
    ENDLOOP.
    The above code is much faster than using
    LOOP AT ITAB INTO WA.
      CHECK WA-K = 'X'.
    ENDLOOP.
    6.     Modifying selected components using “ MODIFY itab …TRANSPORTING f1 f2.. “ accelerates the task of updating  a line of an internal table.
    WA-DATE = SY-DATUM.
    MODIFY ITAB FROM WA INDEX 1 TRANSPORTING DATE.
    The above code is more optimized as compared to
    WA-DATE = SY-DATUM.
    MODIFY ITAB FROM WA INDEX 1.
    7.     Accessing the table entries directly in a "LOOP ... ASSIGNING ..." accelerates the task of updating a set of lines of an internal table considerably
    Modifying selected components only makes the program faster as compared to Modifying all lines completely.
    e.g,
    LOOP AT ITAB ASSIGNING <WA>.
      I = SY-TABIX MOD 2.
      IF I = 0.
        <WA>-FLAG = 'X'.
      ENDIF.
    ENDLOOP.
    The above code works faster as compared to
    LOOP AT ITAB INTO WA.
      I = SY-TABIX MOD 2.
      IF I = 0.
        WA-FLAG = 'X'.
        MODIFY ITAB FROM WA.
      ENDIF.
    ENDLOOP.
    8.    If collect semantics is required, it is always better to use to COLLECT rather than READ BINARY and then ADD.
    LOOP AT ITAB1 INTO WA1.
      READ TABLE ITAB2 INTO WA2 WITH KEY K = WA1-K BINARY SEARCH.
      IF SY-SUBRC = 0.
        ADD: WA1-VAL1 TO WA2-VAL1,
             WA1-VAL2 TO WA2-VAL2.
        MODIFY ITAB2 FROM WA2 INDEX SY-TABIX TRANSPORTING VAL1 VAL2.
      ELSE.
        INSERT WA1 INTO ITAB2 INDEX SY-TABIX.
      ENDIF.
    ENDLOOP.
    The above code uses BINARY SEARCH for collect semantics. READ BINARY runs in O( log2(n) ) time. The above piece of code can be more optimized by
    LOOP AT ITAB1 INTO WA.
      COLLECT WA INTO ITAB2.
    ENDLOOP.
    SORT ITAB2 BY K.
    COLLECT, however, uses a hash algorithm and is therefore independent
    of the number of entries (i.e. O(1)) .
    9.    "APPEND LINES OF itab1 TO itab2" accelerates the task of appending a table to another table considerably as compared to “ LOOP-APPEND-ENDLOOP.”
    APPEND LINES OF ITAB1 TO ITAB2.
    This is more optimized as compared to
    LOOP AT ITAB1 INTO WA.
      APPEND WA TO ITAB2.
    ENDLOOP.
    10.   “DELETE ADJACENT DUPLICATES“ accelerates the task of deleting duplicate entries considerably as compared to “ READ-LOOP-DELETE-ENDLOOP”.
    DELETE ADJACENT DUPLICATES FROM ITAB COMPARING K.
    This is much more optimized as compared to
    READ TABLE ITAB INDEX 1 INTO PREV_LINE.
    LOOP AT ITAB FROM 2 INTO WA.
      IF WA = PREV_LINE.
        DELETE ITAB.
      ELSE.
        PREV_LINE = WA.
      ENDIF.
    ENDLOOP.
    11.   "DELETE itab FROM ... TO ..." accelerates the task of deleting a sequence of lines considerably as compared to “  DO -DELETE-ENDDO”.
    DELETE ITAB FROM 450 TO 550.
    This is much more optimized as compared to
    DO 101 TIMES.
      DELETE ITAB INDEX 450.
    ENDDO.
    12.   Copying internal tables by using “ITAB2[ ] = ITAB1[ ]” as compared to “LOOP-APPEND-ENDLOOP”.
    ITAB2[] = ITAB1[].
    This is much more optimized as compared to
    REFRESH ITAB2.
    LOOP AT ITAB1 INTO WA.
      APPEND WA TO ITAB2.
    ENDLOOP.
    13.   Specify the sort key as restrictively as possible to run the program faster.
    “SORT ITAB BY K.” makes the program runs faster as compared to “SORT ITAB.”
    Internal Tables         contd…
    Hashed and Sorted tables
    1.     For single read access hashed tables are more optimized as compared to sorted tables.
    2.      For partial sequential access sorted tables are more optimized as compared to hashed tables
    Hashed And Sorted Tables
    Point # 1
    Consider the following example where HTAB is a hashed table and STAB is a sorted table
    DO 250 TIMES.
      N = 4 * SY-INDEX.
      READ TABLE HTAB INTO WA WITH TABLE KEY K = N.
      IF SY-SUBRC = 0.
      ENDIF.
    ENDDO.
    This runs faster for single read access as compared to the following same code for sorted table
    DO 250 TIMES.
      N = 4 * SY-INDEX.
      READ TABLE STAB INTO WA WITH TABLE KEY K = N.
      IF SY-SUBRC = 0.
      ENDIF.
    ENDDO.
    Point # 2
    Similarly for Partial Sequential access the STAB runs faster as compared to HTAB
    LOOP AT STAB INTO WA WHERE K = SUBKEY.
    ENDLOOP.
    This runs faster as compared to
    LOOP AT HTAB INTO WA WHERE K = SUBKEY.
    ENDLOOP.

  • Select Query Problem

    Hi Experts,
    I am having a select query in which I am using a variable in the where condition but it is giving error. Please suggest how to use variable in the select query.
    The query I am using is a s below.
    select * from zexc_rec into table it_ZEXC_REC
          where
           LIFNR in S_LIFNR and
          DOCNO in S_DOCNO and
          DOCTYP in doc_typ and
          DATE1 in S_DATE1 and
          MATNR in S_MATNR.
    Here doc_typ is a variable.
    Thanks.

    Rahul,
    use RANGES type variable instead of variable . It acts as a select-options variable. Thn use this variable in SELECT query with IN.
    Eg :
    RANGES r_t510 FOR t510-lgart.
        r_t510-low = '1600'. 
        APPEND r_t510.
        r_t510-low = '3190'. 
        APPEND r_t510.
    Note  : can be use SIGN, OPTIONS properties too in RANGES type.
    More deatils go through on HELP of RANGES
    Rgds,
    Ranjith

  • Select query problem in JDBC sender adapter

    Hello Experts,
    We have a problem with PI sender adapter that PI has started to miss records in database some database records are missing and we are using the below selet query :
    SELECT * FROM [database name].[dbo].[Material_Movement] WHERE [Process_Order_Number] = (Select TOP 1 [Process_Order_Number] FROM [database name].[dbo].[Material_Movement] WHERE ([PI_Read_Date] IS NULL AND [Movement_Type] = (SELECT TOP 1 [Movement_Type] FROM [database name].[dbo].[Material_Movement] WHERE [Transaction_Code] = 'xyz' AND [PI_Read_Date] IS NULL ORDER BY Created_Date ASC))) AND [Transaction_Code] = 'xyz' AND [Movement_Type] = (SELECT TOP 1 [Movement_Type] FROM [database name].[dbo].[Material_Movement] WHERE [Transaction_Code] = 'xyz' AND [PI_Read_Date] IS NULL ORDER BY Created_Date ASC) AND [PI_Read_Date] IS NULL ORDER BY [Transaction_ID] ASC
    I am weak in select query could you please check and suggest how the query can be modified to avoid this issue .
    Thanks,
    Somenath

    Hi ,
    After looking into These Query .. I found ...
    Your Query Will run such Kind of scenario ..
    1.)   Movement Type will be fetched from from below Query
            SELECT TOP 1 Movement_Type
            FROM database name.dbo.Material_Movement
            WHERE Transaction_Code = 'xyz'
           AND PI_Read_Date IS NULL
            ORDER BY Created_Date ASC
    2.) on the  basis of abovr fetched  moment code . your Query will fetch 1 Process Order number
    Select TOP 1 Process_Order_Number
    FROM database name.dbo.Material_Movement
    WHERE ( PI_Read_Date IS NULL
                  AND Movement_Type =  Moment Type will be same as 1.
    3.)
    After  Getting 1 and 2 . Query will fetch Data  from table " dbo.Material_Movement "
    On the basis of ..
    Movement_Type = value from 1.
    Process_order_type = value from 2.
    Transaction_Code = 'xyz'
    ORDER BY Transaction_ID ASC
    So check Missed record Fullfill this Condition or not ....................
    If not ... You will get why they are not picked by your given Query ...........
    Hope it helps ..
    regards
    Prabhat Sharma.

  • Select query taking too much time to fetch data from pool table a005

    Dear all,
    I am using 2 pool table a005 and a006 in my program. I am using select query to fetch data from these table. i.e. example is mentioned below.
    select * from a005 into table t_a005 for all entries in it_itab
                       where vkorg in s_vkorg
                       and     matnr in  s_matnr
                       and     aplp   in  s_aplp
                       and     kmunh = it_itab-kmunh.
    here i can't create index also as tables are pool table...If there is any solutions , than please help me for same..
    Thanks ,

    it would be helpful to know what other fields are in the internal table you are using for the FOR ALL ENTRIES.
    In general, you should code the order of your fields in the select in the same order as they appear in the database.  If you do not have the top key field, then the entire database is read. If it's large then it's going to take a lot of time.  The more key fields from the beginning of the structure that you can supply at faster the retrieval.
    Regards,
    Brent

  • Multiple Schema select Query problem

    Hi everyone,
    when I tried to execute a select query as following,
    select A.field1, B.field2 from S1.table1 A, S2.table2 B
    in a session bean, it gives an exception as follows
    " An illegal attempt to use multiple resources that have only one-phase capability has occurred within a global transaction"
    Can anyone pls help me in this regard.
    Thanking you
    D. Suresh Kumar

    This is the query i thought of executing
    SELECT * FROM SCH2.AP_TRANSACTION_EPS A, TRANSACTION_TYPES B WHERE C_FUND_CODE = '" + fundCode + "'AND D_TRADE_DATE = to_date('" + date + "','yyyy-mm-dd') AND A.C_TRANS_CODE = B.C_TRANS_CODE " + " AND B.C_TRANS_TYPE = '" + transType + "' ";
    where "fundCode", "date","transType" are java variables.
    The error message is
    [8/1/03 12:38:49:688 IST] 491a6a5 TransactionIm E WTRN0062E: An illegal attempt to use multiple resources that have only one-phase capability has occurred within a global transaction.
    [8/1/03 12:38:49:750 IST] 491a6a5 ConnectO A CONM6014I: Received exception (IllegalStateException) in method (enlist). Issuing new exception (IllegalTransactionStateException). The original exception's stack trace was: java.lang.IllegalStateException
    Thanking you

  • Sql select query problem

    hi friends,
    i've a view called "risk_efforts" with fields user_id,user_name,wknd_dt,week_day,prod_efforts,unprod_efforts.
    Name Type
    ROW_ID NUMBER
    USER_ID VARCHAR2(14)
    USER_NAME VARCHAR2(50)
    WKND_DT VARCHAR2(8)
    WEEK_DAY VARCHAR2(250)
    PROD_EFFORTS NUMBER
    UNPROD_EFFORTS NUMBER
    data is like this:
    when there is some data in prod_efforts, unprod_efforts will be null
    when there is some data in unprod_efforts, prod_efforts will be null
    for example:
    USER_ID     USER_NAME     WKND_DT     WEEK_DAY     PROD_EFFORTS     UNPROD_EFFORTS
    G666999     GTest     20100403     TUE     null 3
    G666999     GTest     20100403     TUE     14     null
    now i want to combine these 2 rows into 1 row i.e o/p should be like this
    USER_ID     USER_NAME     WKND_DT     WEEK_DAY     PROD_EFFORTS     UNPROD_EFFORTS
    G666999     GTest     20100403     TUE     14 3
    i've tried all combinations but couldn't get the query. Please help me with the exact SQL select query.
    thanks,
    Girish

    Welcome to the forum.
    First read this:
    Urgency in online postings
    Secondly, it's always helpful to provide the following:
    1. Oracle version (SELECT * FROM V$VERSION)
    2. Sample data in the form of CREATE / INSERT statements.
    3. Expected output
    4. Explanation of expected output (A.K.A. "business logic")
    5. Use \ tags for #2 and #3. See FAQ (Link on top right side) for details.
    You have provided #3 and #4. However with no usable form of sample data forum members will often not respond as quickly as they could if you provided #2.
    I'm just wagering a guess here but what about this:SELECT ROW_ID
    , USER_ID
    , WKND_DT
    , WEEK_DAY
    , MAX(PROD_EFFORTS) AS PROD_EFFORTS
    , MAX(UNPROD_EFFORTS) AS UNPROD_EFFORTS
    FROM RISK_EFFORTS
    GROUP BY ROW_ID
    , USER_ID
    , WKND_DT
    , WEEK_DAY                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • SELECT query - problem with SORT

    Hi,
    Same select query behaves different way on development and quality server
    on Development it returns unsorted and Quality returns sorted
    it can be resolved by SORT but why does it behave differently
    Do you know what is setting in database
    thanks

    From F1 on SELECT:
    Orders the records in a SELECT statement. Without the ORDER-BY clause, the order
    in which the selected lines are supplied is undefined. This means that two similar SELECT
    statements may produce lines in a different order.
    Rob

  • Select query on  CRMD_ORDERADM_H (urgent)

    Hi All,
          I want to retrieve data from CRMD_ORDERADM_H that would fetch all transactions created on the same day before 6pm.
    I also want another internal table that would contain transaction created on the same day between 6pm and 11pm.
    How do I write a SELECT query for the same ????
    Regards,
    Ashish

    Hi
    You can try it out useing the programme below for your requirement.
    data: it_all_orders1 type standard table of CRMD_ORDERADM_H with header line,
          it_all_orders2 type standard table of CRMD_ORDERADM_H with header line.  
    data: to_day type SYDATUM,
          time_stamp1 type COMT_CREATED_AT_USR,
          time_stamp2 type COMT_CREATED_AT_USR,
          time_stamp3 type COMT_CREATED_AT_USR.
    to-day = sy-datum.
    concatenate to-day(2) '.' to-day2(3) '.' to-day5(3) '.' '180.000' into time_stamp1.
    concatenate to-day(2) '.' to-day2(3) '.' to-day5(3) '.' '180.000' into time_stamp2.
    concatenate to-day(2) '.' to-day2(3) '.' to-day5(3) '.' '230.000' into time_stamp3.
    select * from CRMD_ORDERADM_H
             into corresponding fields of table
             it_all_orders1
             where
             CREATED_AT eq time_stamp1.
    select * from CRMD_ORDERADM_H
             into corresponding fields of table
             it_all_orders2
             where
             CREATED_AT between
                 time_stamp2
             and       
                 time_stamp3.
    Reward points if helpful
    Dinaker vikas

  • Urgent Sql Query Problem - -Very Urgent

    Hi Guys,
    I need a urgent solution for a problem.I am
    using the following query
    select ename from emp where deptno =10
    Now I will declare a bind variable and if user passes 'A'
    then the query will run as it is and if he passes B
    then it should run the above query with this additional clause -> birthdate - hiredate >15.
    Please can any one help its very urgent

    Assuming that you have a birthdate column in your emp table, the following will do what you are asking for:
    VARIABLE bind_var VARCHAR2(1)
    EXECUTE :bind_var := '&bind_variable'
    SELECT ename FROM
    (SELECT 'A' AS selection, ename FROM emp WHERE deptno = 10
    UNION ALL
    SELECT 'B' AS selection, ename FROM emp WHERE deptno = 10 AND birthdate - hiredate > 15)
    WHERE selection = :bind_var
    However, the clause "birthdate - hiredate > 15" will only retrieve rows for employees who were born more than 15 days after they were hired. I doubt that this is what you really want, since this is impossible.

  • Abap select query problem

    This report will take delivery document number and delivery date from user and fetches details from delivery table and fetches
    corresponding sales order details and billing details  and displays sales order details with ALV list.
    << Please only post the relevant portions of your code >>
    i just want to know that is this way of fetching the data into internal table okay ?are there any better ways of fetching the data into the internal table ? why  is it looping in work area of lips, why not in likp?
    (plz dont use field-symbols or oo abap or macros) I WANT TO USE PLAIN AND SIMPLE ABAP STATEMENTS LIKE ABOVE..
    By using "vbeln type lips-vbeln" are we refering to the field or data element? plz suggest.
    P.S.           [my approach was to inner join likp and lips into itab(my internal table).
    select data from kna1, vbak,vbap,vbrp into respective internal tables like it_kna1,it_vbak etc.
    then using individual loops into the tables, i would use read table to insert data into itab(my final internal table) plz suggest which method wud be more efficient? ]
    Edited by: Rob Burbank on Jun 8, 2009 11:54 AM

    ok i am posting the select queries once again.
    i want to know why are we looping in t_lips and why not t_likp? bcoz tlikp is the header table, if we loop thru it and then read the rest tables then what will be the problem? plz clarify with examples._
    [my idea was to loop at t_likp then read t_lips.append the lips data into t_order(main internal table).then do read table on t_kna1,t_vbap etc indexing t_order. so plz suggest whether my approach was write or wrong?if wrong why?plz site any other ways of doing this query.
    types: begin of ty_vbap,
           vbeln type vbap-vbeln,
           posnr type vbap-posnr, .....
    does the declaration statement in types refer to tables or data elements? what is the difference if we declare it like:
       types: begin of ty_vbap,
           vbeln type vbeln,
           posnr type posnr, .....
    select-options:
    s_deldoc FOR likp-vbeln, " Delivery
    s_dldate FOR likp-lfdat. " Delivery Date
    Get delivery document number,delivery date,customer number from
    delivery header table
    SELECT vbeln " Delivery
    lfdat " Delivery Date
    kunnr " Customer Number 1
    FROM likp
    INTO TABLE t_likp
    WHERE vbeln IN s_deldoc
    AND lfdat IN s_dldate.
    IF sy-subrc EQ 0.
    Get Customer name for customer numbers from Customer master table
    SELECT kunnr " Customer Number 1
    name1 " Name 1
    FROM kna1
    INTO TABLE t_kna1
    FOR ALL ENTRIES IN t_likp
    WHERE kunnr EQ t_likp-kunnr.
    IF sy-subrc EQ 0.
    Get delivery item number,sales document number,sales item number,
    delivery quantity from delivery item table
    SELECT vbeln " Delivery
    posnr " Delivery Item
    vgbel " Document number of
    " reference document
    vgpos " Item number of reference item
    lfimg " Actual quantity delivered
    vrkme " Sales unit
    FROM lips
    INTO TABLE t_lips
    FOR ALL ENTRIES IN t_likp
    WHERE vbeln EQ t_likp-vbeln.
    IF sy-subrc EQ 0.
    Get sales document number,item number,material,material description,
    ordered quantity from sales item table
    SELECT vbeln " Sales Document
    posnr " Sales Document Item
    matnr " Material Number
    arktx " Short text for sales order
    " item
    kwmeng " Cumulative Order Quantity
    vrkme " Sales unit
    FROM vbap
    INTO TABLE t_vbap
    FOR ALL ENTRIES IN t_lips
    WHERE vbeln EQ t_lips-vgbel
    AND posnr EQ t_lips-vgpos.
    IF sy-subrc EQ 0.
    Get sales document number ,created date,purchase order number from
    sales header table
    SELECT vbeln " Sales Document
    erdat " Date on Which Record Was" Created
    aufnr " Order Number
    FROM vbak
    INTO TABLE t_vbak
    FOR ALL ENTRIES IN t_lips
    WHERE vbeln EQ t_lips-vgbel.
    IF sy-subrc EQ 0.* Get billing document number,billing item,reference delivery document
    number,delivery item number,billing item from billing item table
    SELECT vbeln " Billing Document
    posnr " Billing item
    vgbel " Document number of the
    " reference document
    vgpos " Item number of the" reference" item
    fklmg " Billing quantity in" stockkeeping unit
    vrkme " Sales unit
    FROM vbrp
    INTO TABLE t_vbrp
    FOR ALL ENTRIES IN t_lips
    WHERE vgbel EQ t_lips-vbeln
    AND vgpos EQ t_lips-posnr.
    ENDIF. " IF SY-SUBRC EQ 0
    ENDIF. " IF SY-SUBRC EQ 0
    ENDIF. " IF SY-SUBRC EQ 0
    ENDIF. " IF SY-SUBRC EQ 0
    ELSE.
    Display message if records are not found for entered values
    MESSAGE S000.
    EXIT.
    ENDIF. " IF SY-SUBRC EQ 0
    Looping Delivery item internal table to assign values to order
    internal table
    LOOP AT t_lips INTO fs_lips.
    Get delivery date and customer number for delivery document number
    from delivery header internal table
    READ TABLE t_likp WITH KEY vbeln = fs_lips-vbeln
    INTO fs_likp.
    Get customer name for customer number from customer master internal
    table
    IF sy-subrc EQ 0.
    READ TABLE t_kna1 WITH KEY kunnr = fs_likp-kunnr
    INTO fs_kna1.
    Get sales document number,item number,ordered quantity for delivery
    document number,item number from sales item internal table
    IF sy-subrc EQ 0.
    READ TABLE t_vbap WITH KEY vbeln = fs_lips-vgbel
    posnr = fs_lips-vgpos INTO fs_vbap.
    Get goods issue date and purchase order number for sales document
    number from sales header internal table
    IF sy-subrc EQ 0.
    READ TABLE t_vbak WITH KEY vbeln = fs_vbap-vbeln INTO fs_vbak.
    IF sy-subrc EQ 0.
    Get billing document number,billing item,billing quantity for delivery
    document number,delivery item number from billing item internal table
    READ TABLE t_vbrp WITH KEY vgbel = fs_lips-vbeln
    vgpos = fs_lips-posnr INTO fs_vbrp.
    Assign sales,delivery,billing fields into respective fields of sales
    order internal table
    IF sy-subrc EQ 0.
    fs_order-vbeln = fs_vbap-vbeln.
    fs_order-posnr = fs_vbap-posnr.
    fs_order-erdat = fs_vbak-erdat.
    fs_order-kunnr = fs_likp-kunnr.
    fs_order-name1 = fs_kna1-name1.
    fs_order-aufnr = fs_vbak-aufnr.
    fs_order-matnr = fs_vbap-matnr.
    fs_order-arktx = fs_vbap-arktx.
    fs_order-kwmeng = fs_vbap-kwmeng.
    fs_order-vrkme = fs_vbap-vrkme.
    fs_order-vbeln1 = fs_lips-vbeln.
    fs_order-posnr1 = fs_lips-posnr.
    fs_order-lfimg = fs_lips-lfimg.
    fs_order-vrkme1 = fs_lips-vrkme.
    fs_order-vbeln2 = fs_vbrp-vbeln.
    fs_order-posnr2 = fs_vbrp-posnr.
    fs_order-fklmg = fs_vbrp-fklmg.
    fs_order-vrkme2 = fs_vbrp-vrkme.
    APPEND fs_order TO t_order.
    CLEAR fs_order.
    ENDIF. " IF SY-SUBRC EQ 0
    ENDIF. " IF SY-SUBRC EQ 0
    ENDIF. " IF SY-SUBRC EQ 0
    ENDIF. " IF SY-SUBRC EQ 0
    ENDIF. " IF SY-SUBRC EQ 0
    ENDLOOP. " LOOP AT T_LIPS INTO FS_LIPS

  • Reg select query problem

    hi all,
    hope all r doing fine?
    anyway i have a query which is mentioned below:-
    select field1,.....fieldn
             from <dbtable1>
             into corresponding fields of table itab
             where <condition>.
    select field1,...fieldn
              from <dbtable2>
             appending corresponding fields of table itab
            where <condition>.
    the above two select stmts retrieve same set of  fields from two different database tables into same internal table itab..
    now my question is ...........is any other way to change 2nd select statement without using appending correspondin fields
    but the functionality should remain the same as it is after changing..................
    bcos appending corresponding is causing performance problem in data retrieval.
    thanx alot in advance.
    for sure points will be given for all the helpful answers
    Jack

    Hi,
    You can use like that:
    select field1,.....fieldn
    from <dbtable1>
    into corresponding fields of table itab1
    where <condition>.
    select field1,...fieldn
    from <dbtable2>
    appending corresponding fields of table itab2
    where <condition>.
    now u use:
    loop at itab2 into w_itab2.
    read table itab1 into w_itab1 with key w_itab1-<primary field> = w_itab2-<Primary field>.
    if sy-subrc = 0.
      append w_final into i_final.
    else continue.
    endif.
    endloop.
    *i_final table having all data ( i.e itab2 & itab1 data)

  • Select Query Problem-need help

    hi,
    Help me out from this problem.
    Actually i have a table and the data in it as follows:
    Department Name Job Name
    Accounts Sr. Accountant
    Accounts Jr. Accountant
    Accounts Cleark
    But i dont want the repeated Department Name.. and i want the same output as follows.
    Department Name Job Name
    Accounts Sr. Accountant
    Jr. Accountant
    Cleark
    Without using sql reports and Sql Plus additional commands.
    The same output should come from a sql query only.
    Thanks in Advance
    Md Anwer Ali

    I shouldn't try to code before I have had at least three cups of coffee. The actual answer is:
    select decode(department,lag(department) over (order by department),null,department)
    , job
    from departments
    order by department.
    I ran this:
    select decode(job,lag(job) over (order by job),null,job)
    , ename
    from emp
    order by job
    and got this result:
    SQL> /
    DECODE(JO ENAME
    ANALYST SCOTT
    FORD
    CLERK SMITH
    ADAMS
    MILLER
    JAMES
    MANAGER JONES
    CLARK
    BLAKE
    PRESIDENT KING
    SALESMAN ALLEN
    MARTIN
    TURNER
    WARD
    14 rows selected.

  • Query Problem..Urgent

    I have two views created from the same table based on two conditions for some quantities.
    I need to create another view based on rhese and am using a group by function in here.SO i am grouping by month and product. now based on these views and combine the data once again but i have a problem here.
    in the where cause i can specify the a.product =b.product(+) but i want to include everything from both the views.
    SEcondly not only items should match but so should the months in there so a.month=b.month(+) but if i have months in a which are not in b then they will not show up.
    I want all the data to show up
    Eg. View A
    product qtyin month
    computer 200 jan-2003
    computer 300 feb-2003
    computer 100 feb-2003
    monitor 300 jan-2003
    monitor 200 jan-2003
    cpu 400 feb 2003
    ND VIEW B
    product qtyout month
    computer 300 jan-2003
    computer 150 jan-2003
    computer 200 feb-2003
    computer 300 mar-2003
    monitor 200 jan-2003
    fans 100 jan-2003
    VIEW C
    PRODUCT QTYIN QTYOUT MONTH
    COMPUTER 200 450 JAN-2003
    COMPUTER 400 200 FEB-2003
    COMPUTER 300 MAR-2003
    MONITOR 500 200 JAN-2003
    CPU 400 FEB-2003
    FANS 100 JAN-2003
    I hope someone can help me with this...........
    Best Regards,
    Ashish Nanda

    select PRODUCT, SUM(QTYIN), SUM(QTYOUT), MONTH_DT
    FROM (SELECT PRODUCT, QTYIN, 0 QTYOUT, MONTH_DT FROM VIEWA
           UNION
           SELECT PRODUCT, 0, QTYOUT, MONTH_DT FROM VIEWB)
    GROUP BY PRODUCT, MONTH_DT;
    PRODUCT              SUM(QTYIN) SUM(QTYOUT) MONTH_DT
    COMPUTER                    400         200 FEB-2003
    COMPUTER                    200         450 JAN-2003
    COMPUTER                      0         300 MAR-2003
    CPU                         400           0 FEB 2003
    FANS                          0         100 JAN-2003
    MONITOR                     500         200 JAN-2003

  • Selection query problem

    hi all.....
    i want to setct some data from table vbrp ,vbrk and vbfa .
    on selection screen i have vbrk-vbeln and vbfa-erdat i hav written one code for tht but thts not working can nybdy plz help me in this..
    parameter : p_vbeln type vbrk-vbeln ,
                p_erdat type vbfa-erdat  .
    *--start of selection events
    start-of-selection.
    *--SELECTING THE DATA FROM DATABASE INTO INTERNAL TABLE
    SELECT v1~vbeln AS vbeln
            v1~kunag AS kunag
            v1~vkorg AS vkorg
            v1~netwr AS netwr
            v2~ntgew AS ntgew
            v2~matnr AS matnr
            v3~erdat AS erdat
            INTO CORRESPONDING fields of table it_data1
        FROM vbrk AS v1
        INNER JOIN vbrp AS v2
           ON v1vbeln = v2vbeln
        INNER JOIN vbfa AS v3
           ON v1vbeln = v3vbeln
            WHERE v1~vbeln eq p_vbeln .
       loop at it_data1 into wa_data where erdat ne p_erdat.
       delete it_data1 from wa_data.
    endloop.
    end-of-selection.
    thanks in advance.....

    How have you defined your itab ?
    You query looks perfectly ok , even if you use vbeln or vbelv it wont matter , it depends on the requirement.
    So have you defined your itab correctly ?
    for example :
    data : begin of itab occurs 0,
             vbeln like vbrk-vbeln,
             kunag like vbrk-kunag,
             netwr like vbrk-netwr,
             ntgew like vbrp-ntgew,
             matnr like vbrp-matnr,
             erdat like vbfa-erdat,
             end of itab.
    regards,
    Advait

Maybe you are looking for

  • How to display uploaded image in jsp page.

    Hello, I am using struts 1.2.9 and and have uploaded image on the server. Now what I want to do display the image in jsp page after clicking on one link in jsp. I have tried many thing to display image in jsp page. But I am getting an error during di

  • Material Master Change

    Hi We are on version 4.70 and we want to change field MARA-SATNR. via MM02 but the field is greyed out. How do we change it. Many Thanks Pops Balram

  • CS2 Crashes After Launching

    Hi there, My Photoshop CS2 has been crashing soon after I open it. Usually it's not more then a minute after. I don't know where to begin looking to find where the problem is, but the copied crash report is below. Any help would be appreciated! Proce

  • Problem with an index of markers

    In FrameMaker 7.2, I developed an elegant method for compiling an index of warnings, which is an alphabetical list of all the warnings in the book, each followed by the pages at which they occur in the book. Thus, warnings that used the same content

  • SAP QM - Message QE405 is not appearing in QE51N

    Hi guys, Im working in hte area QM in SAP (ECC 6.0) and I need to know where one can configure the following funcionality: In trx QE51N one is entering results for an inspection lot. If the caracteristic shows values lets say  between 2 - 10 and one