Sql Error in Select statement when doing subquery

Hi,
I am trying to see what the error is in the subquery part of the select statement.
Subquery should be fetching the safety_stock_quantity based on the MAX(effectivity_date).
Any suggestions?
SELECT kbn.last_update_date,itm.segment1,itm.description,kbn.kanban_card_number,kbn.kanban_size,
               (SELECT msc.safety_stock_quantity
FROM mtl_safety_stocks msc
WHERE msc.effectivity_date = (select MAX(msc2.effectivity_date)
               from mtl_safety_stocks msc2
                                        where msc2.inventory_item_id = itm.inventory_item_id
                                             and msc2.organization_id = itm.organization_id)
               AND msc.inventory_item_id = itm.inventory_item_id
     AND msc.organization_id = itm.organization_id                                        
FROM mtl_system_items_b itm
,mtl_onhand_quantities_detail moqd
          ,mtl_safety_stocks msc
          ,mtl_kanban_card_activity kbn
WHERE itm.inventory_item_id = kbn.inventory_item_id
AND itm.organization_id = kbn.organization_id
AND itm.inventory_item_id = moqd.inventory_item_id
AND itm.organization_id = moqd.organization_id
AND moqd.subinventory_code = kbn.source_subinventory
     AND kbn.card_status = 1
     AND kbn.supply_status = 5
     AND msc.inventory_item_id = itm.inventory_item_id
     AND msc.organization_id = itm.organization_id     
GROUP BY
kbn.last_update_date,itm.segment1,itm.description,kbn.kanban_card_number,kbn.kanban_size;
Thanks
Pravn

Hi, Pravn,
Remember the ABC's of GROUP BY:
When you use a GROUP BY clause and/or an aggregate fucntion, then every item in the SELECT clause must be:
(A) an <b>A</b>ggregate function,
(B) one of the "group <b>B</b>y" expressions,
(C) a <b>C</b>onstant, or
(D) something that <b>D</b>epends entirely on the above. (For example, if you "GROUP BY TRUNC(dt)", you can "SELECT TO_CHAR (TRUNC(dt), 'Mon-DD')").
There's a GROUP BY clause in your main query, so every item in the main SELECT clause must be one of the above. The last item, the unnamed scalar sub-query, is none of the above.
How can you fix this problem? That depends on your data, the results you want, and perhaps on your Oracle version. If you'd like help, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) from all tables involved. Also post the results you want from that data, and an explanation of how you get those results from that data, with specific examples.
Always say which version of Oracle you're using.
You may have noticed that this site normally doesn't display multiple spaces in a row.
Whenever you post formatted text (including, but limited to, actual code) on this site, type these 6 characters:
\(small letters only, inside curly brackets) before and after each section of formatted text, to preserve spacing.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

Similar Messages

  • Msg 116, Level 16, State 1, Line 6 Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.

    Hello,
    Can anyone help me?
    select year(po.rdata) as 'Ano', 
    sum(etotal) as 'Valorp' ,
    (select year(fo.data),Sum(etotal) 
    FROM fo (nolock) 
    where  not exists ( select 1 from pl (nolock) where pl.adoc = fo.adoc and pl.cm = fo.doccode ) 
    group by year(fo.data))as 'Valorap'   
    from po 
    group by year(po.rdata)
    order by year(po.rdata)
    Error 
    Msg 116, Level 16, State 1, Line 6
    Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.
    Consultora

    Hi Prashanth,
    select year(po.rdata) as 'Ano',
    sum(etotal) as 'Valorp' ,
    (select Sum(etotal)
    FROM fo (nolock)
    where not exists ( select 1 from pl (nolock) where pl.adoc = fo.adoc and pl.cm = fo.doccode )
    group by year(fo.data))as 'Valorap'
    from po(nolock)
    group by year(po.rdata)
    order by year(po.rdata)
    Gives me the error: 
    Msg 512, Level 16, State 1, Line 1
    Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
    Thanks
    Consultora

  • Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.

    hi all
    i have a table that name is:
    TiketsHeader 
    but i used this code
    SELECT TicketsHeaderId, Active, TH.PersonRef,P.Fname + ' ' + P.Lname AS NF, Serial, TicketsCnt, StartSerial, EndSerial, KindDate, StratDate, EndDate,
    MonthsRef1,(SELECT * FROM dbo.Months M WHERE M.MonthsId= MonthsRef1 ) AS MonthsName1 , MonthsRef2, MonthsRef3, WeekDaysRef,
    PoolTimesRef, TH.Descreption
    FROM dbo.TiketsHeader TH
    INNER JOIN Person P ON P.PersonId= TH.PersonRef
    i see this error:
    Msg 116, Level 16, State 1, Line 2
    Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.
    how to solve it
    please help me
    Name of Allah, Most Gracious, Most Merciful and He created the human

    SELECT TicketsHeaderId, Active, TH.PersonRef,P.Fname + ' ' + P.Lname AS NF, Serial, TicketsCnt, StartSerial, EndSerial, KindDate, StratDate, EndDate,
    MonthsRef1,(SELECT * FROM dbo.Months M WHERE M.MonthsId= MonthsRef1 ) AS MonthsName1 , MonthsRef2, MonthsRef3, WeekDaysRef,
    PoolTimesRef, TH.Descreption
    FROM dbo.TiketsHeader TH
    INNER JOIN Person P ON P.PersonId= TH.PersonRef
    A Sub query like this can only return one column, not serveral like here with the star *. Replace the star by one column Name that you want to query.
    Olaf Helper
    [ Blog] [ Xing] [ MVP]

  • Root cause of "SQL error in the database when accessing a table. "

    Dear experts,
    I meet this dump "SQL error in the database when accessing a table" when executing a sql.
    Sql:
        SELECT sesssessno poscrm_serplan_id poscrm_ser_h_id poscrm_ser_i_id
               possolution_id sessbundle_id sessdbid sessinstno pos~crm_ordered_prod
               sessdbid sessinstno
          INTO CORRESPONDING FIELDS OF TABLE et_sess_list
          FROM dsvassessadmin AS sess JOIN service_posn_sm AS pos
            ON possession_id     = sesssessno
          FOR ALL ENTRIES IN lt_contractno
          WHERE sess~contractno = lt_contractno-contract_no
           AND sess~status IN lt_status_range
           AND bundle_id IN lt_bundle_id
           AND pos~solution_id GT 0
    This sql works well in dev system SD7, however, it causes dump in another dev system "SMV".
    Can anyone give me any ideas?
    Thanks

    Hi Jovito,
    This is info from ST22
    Short text
        SQL error in the database when accessing a table.
    What can you do?
        Note which actions and input led to the error.
        For further help in handling the problem, contact your SAP administrator
        You can use the ABAP dump analysis transaction ST22 to view and manage
        termination messages, in particular for long term reference.
    How to correct the error
        Database error text........: "SQL0101N The statement is too long or too
         complex. SQLSTATE=54001"    Internal call code.........: "[RSQL/OPEN/DSVASSESSADMIN ]"
        Please check the entries in the system log (Transaction SM21).
        If the error occures in a non-modified SAP program, you may be able to
        find an interim solution in an SAP Note.
        If you have access to SAP Notes, carry out a search with the following
        keywords:
        "DBIF_RSQL_SQL_ERROR" "CX_SY_OPEN_SQL_DB"
        "CL_AGS_SERVICE_SERV===========CP" or "CL_AGS_SERVICE_SERV===========CM018"
        "GET_OVS_SESSION_LIST"
        If you cannot solve the problem yourself and want to send an error
        notification to SAP, include the following information:
        1. The description of the current problem (short dump)
           To save the description, choose "System->List->Save->Local File
        (Unconverted)".
        2. Corresponding system log
           Display the system log by calling transaction SM21.
           Restrict the time interval to 10 minutes before and five minutes
        after the short dump. Then choose "System->List->Save->Local File
        (Unconverted)".
        3. If the problem occurs in a problem of your own or a modified SAP
        program: The source code of the program
           In the editor, choose "Utilities->More
        Utilities->Upload/Download->Download".
        4. Details about the conditions under which the error occurred or which
        actions and input led to the error.
        The exception must either be prevented, caught within proedure
        "GET_OVS_SESSION_LIST" "(METHOD)", or its possible occurrence must be declared
         in the
        RAISING clause of the procedure.
        To prevent the exception, note the following:
    It seems that after translation the native sql is too long. But I think this can be solved.

  • DBIF_RSQL_SQL_ERROR with SQL error in the database when accessing a table.

    dear all,
      i have done a system copy from production server into quality server. quality was scrapped and freshly installed with SAP then used the DB flush method to carry out the system copy. i had to change the DBS_ORA_SCHEMA in environment variables to SAP<SOURCE SID> from SAPSR3. the sap version is ECC6.0,DB is ORACLE10.2 on WIN NT.
      after MMC opened, i get "SQL error in the database when accessing a table" error is coming. in SM21, I am getting "Transaction Canceled 00 671 ( DBIF_RSQL_SQL_ERROR 20081018130339sibqty_QTY_00 SAPSYS 000 )
    Database error 8103 at SEL access to table TBTCO
    Run-time error "DBIF_RSQL_SQL_ERROR" occurred
    Database error 8103 at FET access to table TBTCP
    Run-time error "DBIF_RSQL_SQL_ERROR" occurred
    > Short dump "081018 130339 sibqty_Q TY_00 " generated
    Transaction Canceled 00 671 ( DBIF_RSQL_SQL_ERROR 20081018130339sibqty_QTY_00 SAPSYS 000
    > Short dump "081018 130339 sibqty_Q TY_00 " generated
    Transaction Canceled 00 671 ( DBIF_RSQL_SQL_ERROR 20081018130339sibqty_QTY_00 SAPSYS 000
    Delete session 001 after error 023
    Database error 8103 at DEL access to table TMSALOGAR
    Run-time error "DBIF_RSQL_SQL_ERROR" occurred
    > Short dump "081018 130432 sibqty_Q TY_00 " generated
    Database error 8103 at FET access to table SNAP
    Run-time error "DBIF_RSQL_SQL_ERROR" occurred
    > Short dump "081018 130432 sibqty_Q TY_00 " generated
    Transaction Canceled SY 002 ( SQL error in the database when accessing a table. )
    Database error 8103 at FET access to table TSP02"
    please find the st22 DUMP:
    ow to correct the error                                                                          |
    Database error text........: "ORA-08103: object no longer exists"
    Internal call code.........: "[RSQL/READ/TBTCO ]"
    Please check the entries in the system log (Transaction SM21).
    If the error occures in a non-modified SAP program, you may be able to
    find an interim solution in an SAP Note.
    If you have access to SAP Notes, carry out a search with the following
    keywords:
    "DBIF_RSQL_SQL_ERROR" "CX_SY_OPEN_SQL_DB"
    "SAPMSSY2" or "SAPMSSY2"
    "INITIATE_JOB_START"
    If you cannot solve the problem yourself and want to send an error
    notification to SAP, include the following information:
    1. The description of the current problem (short dump)
    To save the description, choose "System->List->Save->Local File
    (Unconverted)".
    2. Corresponding system log
    Display the system log by calling transaction SM21.
    Restrict the time interval to 10 minutes before and five minutes
    after the short dump. Then choose "System->List->Save->Local File
    (Unconverted)".
    3. If the problem occurs in a problem of your own or a modified SAP
    program: The source code of the program
    In the editor, choose "Utilities->More
    Utilities->Upload/Download->Download".
    4. Details about the conditions under which the error occurred or which
    actions and input led to the error.
    The exception must either be prevented, caught within proedure
    "INITIATE_JOB_START" "(FORM)", or its possible occurrence must be declared in
    the
    RAISING clause of the procedure.
    |   
    please do me this favor if you know to avoid this problem..
    thanks a lot..

    Hello Anuj,
    This is because the COUNT(*) is returning a value which is longer than the INT4 data type it is expecting. If you restrict the selection by introducing a WHERE clause, then you won't get the dump:
    DATA: dyn_from    TYPE string,
          dyn_where   TYPE string,
          gx_sql_err  TYPE REF TO cx_sy_open_sql_error,
          gv_text     TYPE string.
    dyn_from  = `DD01L INNER JOIN DD02L ON DD02L~AS4LOCAL = DD01L~AS4LOCAL AND DD02L~AS4VERS = DD01L~AS4VERS`.
    dyn_where = `DOMNAME LIKE 'Z%'`.
    TRY .
        SELECT COUNT(*) FROM (dyn_from) WHERE (dyn_where).
        WRITE: / sy-dbcnt NO-GROUPING.
      CATCH:  cx_sy_open_sql_db             INTO gx_sql_err,
              cx_sy_dynamic_osql_semantics  INTO gx_sql_err,
              cx_sy_dynamic_osql_syntax     INTO gx_sql_err.
    ENDTRY.
    IF gx_sql_err IS BOUND.
      gv_text = gx_sql_err->get_text( ).
      WRITE: / gv_text.
    ENDIF.
    BR,
    Suhas

  • Getting error "SQL error in the database when accessing a table."

    Hi All,
    We are getting Dump Error SQL error in the database when accessing a table for the batch job EISSD/REQUISITION 14 / which includes program AQ20FD==========A2============. Please reply. The Dump error details are as follows
    Short text
        SQL error in the database when accessing a table.
    How to correct the error
        Database error text........: "ORA-01555: snapshot too old: rollback segment
         number 21 with name "_SYSSMU21$" too small"
        Internal call code.........: "[RSQL/FTCH/VBRK ]"
        Please check the entries in the system log (Transaction SM21).
    Thanks
    Padmakar Kudtarkar
    Edited by: Rob Burbank on May 19, 2011 9:38 AM

    The query where we are getting error in Standard program AQ20FD==========A2============ for Job
    EISSD/REQUISITION 14 / is as follows:
    select VBRKBUKRS VBRKFKART VBRKFKDAT VBRKFKTYP VBRKGJAHR VBRKKUNAG VBRKKUNRG VBRKKURRF VBRKVBELN VBRKWAERK VBRP~AUBEL
           VBRPAUPOS VBRPFKIMG VBRPKVGR2 VBRPKZWI1 VBRPMATNR VBRPMWSBP VBRPNETWR VBRPPSTYV VBRPVBELN VBRPVGBEL VBRP~VGPOS
           VBRPVKBUR VBRPVKGRP VBRPVRKME VBRPWAVWR
    into (VBRK-BUKRS , VBRK-FKART , VBRK-FKDAT , VBRK-FKTYP , VBRK-GJAHR , VBRK-KUNAG , VBRK-KUNRG , VBRK-KURRF , VBRK-VBELN
         , VBRK-WAERK , VBRP-AUBEL , VBRP-AUPOS , VBRP-FKIMG , VBRP-KVGR2 , VBRP-KZWI1 , VBRP-MATNR , VBRP-MWSBP , VBRP-NETWR
         , VBRP-PSTYV , VBRP-VBELN , VBRP-VGBEL , VBRP-VGPOS , VBRP-VKBUR , VBRP-VKGRP , VBRP-VRKME , VBRP-WAVWR )
    from ( VBRK
           inner join VBRP
           on VBRPVBELN = VBRKVBELN )
           where VBRK~BUKRS in SP$00004
             and VBRK~FKDAT in SP$00001
             and VBRK~KUNAG in SP$00002
             and VBRK~VBELN in SP$00006
             and VBRP~MATNR in SP$00003.
      %dbacc = %dbacc - 1.
      if %dbacc = 0.
        stop.
      endif.
      check SP$00004.
      check SP$00001.
      check SP$00002.
      check SP$00006.
      check SP$00003.
      add 1 to %count-VBRK.
      %linr-VBRK = '01'.
      extract %fg01.
      %ext-VBRP01 = 'X'.
        extract %fgwrVBRP01.
    endselect.

  • SQL error in the database when accessing a table.

    Hi,
    I got below error at production server. Please suggest how to reslove this error.
    <br>
    <br>
    <br>
    Runtime Errors         DBIF_RSQL_SQL_ERROR
    <br>
    Exception              CX_SY_OPEN_SQL_DB
    <br>
    Date and Time          02.01.2011 15:55:06
    <br>
    <br>
    <br>
    <br>
    <br>
    Short text
    <br>
    SQL error in the database when accessing a table.
    <br>
    <br>
    <br>
    How to correct the error
    <br>
    Database error text........: "[10054] TCP Provider: An existing connection was
    <br>
    forcibly closed by the remote host.
    <br>
    [10054] Communication link failure"
    <br>
    Internal call code.........: "[RSQL/INSR/SWFCNTBUF ]"
    <br>
    Please check the entries in the system log (Transaction SM21).
    <br>
    <br>
    If the error occures in a non-modified SAP program, you may be able to
    <br>
    find an interim solution in an SAP Note.
    <br>
    If you have access to SAP Notes, carry out a search with the following
    <br>
    keywords:
    <br>
    <br>
    "DBIF_RSQL_SQL_ERROR" "CX_SY_OPEN_SQL_DB"
    <br>
    "CL_SWF_CNT_FACTORY_SHMEM======CP" or "CL_SWF_CNT_FACTORY_SHMEM======CM001"
    <br>
    |    "ADD_INSTANCE"         
    <br>
    <br>
    <br>
    Information on where terminated
    <br>
    Termination occurred in the ABAP program "CL_SWF_CNT_FACTORY_SHMEM======CP" -
    <br>
    in "ADD_INSTANCE".
    <br>
    The main program was "SAPMSSY1 ".
    <br>
    <br>
    In the source code you have the termination point in line 16
    <br>
    of the (Include) program "CL_SWF_CNT_FACTORY_SHMEM======CM001".
    <br>
    The termination is caused because exception "CX_SY_OPEN_SQL_DB" occurred in
    <br>
    procedure "ADD_INSTANCE" "(METHOD)", but it was neither handled locally nor
    <br>
    declared
    <br>
    in the RAISING clause of its signature.
    <br>
    <br>
    The procedure is in program "CL_SWF_CNT_FACTORY_SHMEM======CP "; its source
    <br>
    code begins in line
    <br>
    1 of the (Include program "CL_SWF_CNT_FACTORY_SHMEM======CM001 ".
    <br>
    <br>
    <br>
    <br>
    Source Code Extract
    <br>
    <br>
    Line
    SourceCde
    <br>
    <br>
    1
    METHOD add_instance .
    <br>
    2
    <br>
    3
    data: ls_id type swfcntbuf.
    <br>
    4
    <br>
    5
    check buffer method - store in local buffer if necessary
    <br>
    6
    retcode = cl_swf_cnt_factory=>add_instance( ibf_por = ibf_por instance = instance ).
    <br>
    7
    <br>
    8
    CHECK m_buffer_method EQ mc_buffer_shared.
    <br>
    9
    <br>
    10
    append key to list of tasks to add stored in database table SWFCNTBUF
    <br>
    11
    will be evaluated by build process for shared memory area (UPDATE_BUFFER method)
    <br>
    12
    <br>
    13
    ls_id-mandt = sy-mandt.
    <br>
    14
    ls_id-id    = ibf_por.
    <br>
    15
    <br>
    >>>>>
    INSERT swfcntbuf CONNECTION r/3*wfcontainer
    <br>
    17
    FROM ls_id.
    <br>
    18
    <br>
    19
    IF sy-subrc EQ 0.
    <br>
    20
    Commit seems to be necessary always, even if INSERT has failed, to get rid of
    <br>
    21
    database locks
    <br>
    22
    COMMIT CONNECTION r/3*wfcontainer.
    <br>
    23
    ENDIF.
    <br>
    24
    <br>
    25
    ENDMETHOD.
    <br>

    duplicate here SQL error in the database when accessing a table.
    Do not post the same question in more than on forum.

  • Error "Error in ABAP statement when processing an internal table. table."

    Hello,
    I am facing the error when tried for GR from SRM portal for my shopping cart and for others created shopping cart. The error is
    "Error in ABAP statement when processing an internal table. table."
    I have the central receipient role. Couold any body assist me?
    Thanks,
    Pijush

    Hi Harish,
    Execute the query in RSRT and check whether you have any short dump is in ST22. This would give a clear idea at what might have gone wrong.
    Another thing is to check whether the code for the variable is fine in the user exit.
    Hope this helps.
    Bye
    Dinesh

  • DBIF_RSQL_SQL_ERROR: SQL error in the database when accessing a table

    Hi Gurus,
    Im getting DBIF_RSQL_SQL_ERROR: SQL error in the database when accessing a table error while I was importing support pack in the system. This is ERP 6.0 with EHP4 with MS SQL in back ground and I was applying the BASIS SP 04. It was in the TEST scenario and in the SPDD_SPAU_CHECK phase it threw the error.
    Short text
        SQL error in the database when accessing a table.
    What can you do?
        Note which actions and input led to the error.
        For further help in handling the problem, contact your SAP administrator
        You can use the ABAP dump analysis transaction ST22 to view and manage
        termination messages, in particular for long term reference.
    How to correct the error
        Database error text........: "[601] Could not continue scan with NOLOCK due to
         data movement."
        Internal call code.........: "[RSQL/FTCH/E071 ]"
        Please check the entries in the system log (Transaction SM21).
        If the error occures in a non-modified SAP program, you may be able to
        find an interim solution in an SAP Note.
        If you have access to SAP Notes, carry out a search with the following
        keywords:
        "DBIF_RSQL_SQL_ERROR" "CX_SY_OPEN_SQL_DB"
        "SAPLSVRT" or "LSVRTU01"
        "TR_LAST_IMPORT_OF_OBJECT"
    SPAM  is ending with the above short dump. I have checked the space availability and it is OK.
    Kindly help.
    Renju Aravind.

    Hi,
    this error is very often seen in case of a database corruptions. Please follow note 142731 and perform a complete database check. Send the results when they show errors.
    Best regards
      Clas

  • Inbound-Queue SYSFAIL: SQL error in the database when accessing a table

    Hi,
    we send around 80 IDoc simultaneously, there 15 are stuck.
    They all have SYSFAIL in SMQ2 with message: SQL error in the database when accessing a table
    I already unlocked the queues and try to resend. Nothing happend!
    I ran RSQIWKEX for the single queus but now there are new queues in Status SYSFAIL.
    I already checked some entries in forum and blogs, but nothing worked out yet!
    Can someone help?! it's urgent!!
    br

    Hi, well as mentioned i searched and found this already.
    But in ST22 i got error concerning
    Laufzeitfehler         DBIF_RSQL_SQL_ERROR
    Ausnahme               CX_SY_OPEN_SQL_DB
    So i guess it's something more serious.
    Any more ideas?!
    Can i simply delete the stucked queues and reporcess them?!
    br

  • Why does plsql give compilation error for select statement?

    When I run following plsql program, it gives compilation error. Could somebody please point me out what could be wrong here? I am running it from system user.
    create or replace procedure drop_user_proc (iname in varchar2) is
    uname varchar2(100);
    begin
    select username into uname from dba_users where username = upper(iname);
    end drop_user_proc;
    select username from dba_users where username = upper('newuser');
    When I run it, I get following error. dba_users is there that is the reason it works outside plsql block, but it doesn't from inside block.
    SQL> @t4
    Warning: Procedure created with compilation errors.
    USERNAME
    NEWUSER
    SQL> show err
    Errors for PROCEDURE DROP_USER_PROC:
    LINE/COL ERROR
    4/3 PL/SQL: SQL Statement ignored
    4/35 PL/SQL: ORA-00942: table or view does not exist

    Role based grants are not available within the stored procedures.
    Only explicit grants are recognized when compiling stored code.
    You need to grant select on that table to the user where you are creating this procedure.

  • Finding this error when running the below query - Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.

    select 
    min(h.[Spcl Order]),
    (select (case when sum(pro.[Quantity]) is null then 0 else sum(pro.[Quantity]) END))
    +
    (select (case when sum(A.[Quantity]) is null then 0 else sum(A.[Quantity]) END),
    min(b.[Posting Date]),min(c.[Order No]),min(d.[Prod_Order No]),min(e.[No]),
    min(f.[Item Category Code]),min(g.[Location Code]),min(i.[Spcl Order_Purch])
    from [tablename2] A 
    inner join [sample].[dbo].[Posting Date_PRL] as b on a.[Posting Date]=b.[Posting Date]
    inner join [sample].[dbo].[Order No_PRL] as c on a.[Order No_]=c.[Order No]
    inner join [sample].[dbo].[Prod_ OrderNo_PRL] as d on a.[Prod_ Order No_]=d.[Prod_OrderNo] 
    inner join [sample].[dbo].[No_PRL] as e on a.[No_]=e.[No]
    inner join [sample].[dbo].[Item Category Code_PRL] as f on a.[Item Category Code]=f.[Item Category Code]
    inner join [sample].[dbo].[Location Code_PRL] as g on a.[Location Code]=g.[Location Code]
    inner join [sample].[dbo].[Spcl Order_PRL] as i on a.[Spcl Order]=i.[Spcl Order_Purch]
    where ((A.[Item Category Code] = 'STYLES') and (A.[Prod_ Order No_]='') and ( A.[Buy-from Vendor No_] in ('S02052')) AND (A.[Quantity]>0) 
    AND ( A.[Posting Date] = pro.[Finished Date])))
    from [tablename1] pro 
    inner join [sample].[dbo].[Spcl Order_PO] as h on Pro.[Spcl Order]=h.[Spcl Order]
    where ((pro.[Status]=4) and (pro.[Finished Date] ='2013-10-10' )) group by pro.[Finished Date]

    As other suggested, please find the column list...there are many columns in your subquery...
    eg:
    Select *,(Select 1,2) From (Values(1),(2))A(MonthID) -- will not work
    where as 
    Select *,(Select 1) From (Values(1),(2))A(MonthID) --will work
    Your case:
    select 
    min(h.[Spcl Order]),
    (select
    (case when sum(pro.[Quantity]) is null then 0 else sum(pro.[Quantity]) END))
    +
    (select (case when sum(A.[Quantity]) is null then 0 else sum(A.[Quantity]) END),
    min(b.[Posting Date]),min(c.[Order No]),min(d.[Prod_Order No]),min(e.[No]),
    min(f.[Item Category Code]),min(g.[Location Code]),min(i.[Spcl Order_Purch])
    from [tablename2] A 
    inner join [sample].[dbo].[Posting Date_PRL] as b on a.[Posting Date]=b.[Posting Date]
    inner join [sample].[dbo].[Order No_PRL] as c on a.[Order No_]=c.[Order No]
    inner join [sample].[dbo].[Prod_ OrderNo_PRL] as d on a.[Prod_ Order No_]=d.[Prod_OrderNo] 
    inner join [sample].[dbo].[No_PRL] as e on a.[No_]=e.[No]
    inner join [sample].[dbo].[Item Category Code_PRL] as f on a.[Item Category Code]=f.[Item Category Code]
    inner join [sample].[dbo].[Location Code_PRL] as g on a.[Location Code]=g.[Location Code]
    inner join [sample].[dbo].[Spcl Order_PRL] as i on a.[Spcl Order]=i.[Spcl Order_Purch]
    where ((A.[Item Category Code] = 'STYLES') and (A.[Prod_ Order No_]='') and ( A.[Buy-from Vendor No_]
    in ('S02052')) AND (A.[Quantity]>0) 
    AND ( A.[Posting Date] = pro.[Finished Date])))
    from [tablename1] pro 
    inner join [sample].[dbo].[Spcl Order_PO] as h on Pro.[Spcl Order]=h.[Spcl Order]
    where ((pro.[Status]=4) and (pro.[Finished Date] ='2013-10-10' )) group by pro.[Finished Date]

  • Runtime error at select statement in RFC_READ TABLE FM

    Dear All,
       I have copied the standard FM RFC_READ_TABLE to incorporate the customer needs. Below is the select query which I have written in this FM.
    SELECT (po_search_text-column_text) INTO <wa> FROM ekko
          INNER JOIN ekpo ON ekko~ebeln = ekpo~ebeln
          INNER JOIN eket ON ekpo~ebeln = eket~ebeln AND ekpo~ebelp = eket~ebelp
          INNER JOIN lfa1 ON ekko~lifnr = lfa1~lifnr
          INNER JOIN lfm1 ON ekko~lifnr = lfm1~lifnr AND ekko~ekorg = lfm1~ekorg
          INNER JOIN lfb1 ON ekko~lifnr = lfb1~lifnr AND ekko~bukrs = lfb1~bukrs
          INNER JOIN t024 ON ekko~ekgrp = t024~ekgrp
          INNER JOIN zatscsng_status ON eket~ebeln = zatscsng_status~po_number
          AND   eket~ebelp = zatscsng_status~po_line
          AND   eket~etenr = zatscsng_status~po_sched_line
          INNER JOIN adrc ON zatscsng_status~delivery_addr = adrc~addrnumber
          WHERE (po_search_text-cond_text)
          ORDER BY (po_search_text-sort_text).
    Here, posearch_text-column_text_ will have the fields to be selected at runtime and posearch_text-cond_text_ is the where condition. It is running fine in this case.
    But when I try to select Item Category ( EKPO-PSTYP), if data is present for this category, it is returning the values but if data is not there for the particular item category in the where clause, it is giving a RUNTIME ERROR at the select statement.
    Here is the ERROR ANALYSIS:
    An exception occurred that is explained in detail below.
    The exception, which is assigned to class 'CX_SY_DYNAMIC_OSQL_SEMANTICS', was
      not caught in
    procedure "ZATSCSNG_RFC_READ_TABLE" "(FUNCTION)", nor was it propagated by a
      RAISING clause.
    Since the caller of the procedure could not have anticipated that the
    exception would occur, the current program is terminated.
    The reason for the exception is:
    The current ABAP program has tried to execute an Open SQL statement
    which contains a WHERE, ON or HAVING condition with a dynamic part.
    The part of the WHERE, ON or HAVING condition specified at runtime in
    a field or an internal table, contains the invalid value "<L_LINE>-PSTYP".
    Edited by: Rob Burbank on Mar 17, 2010 5:09 PM

    Now that's what I call a join statement...
    You probably have a bug in how you build po_search_text-cond_text, the content must be a syntactically correct where clause. It seems that in your example there is just "<L_LINE>-PSTYP" without a condition, so try omitting it altogether.
    Debug the content of po_search_text-cond_text before it hits the select statement.
    Thomas

  • PL/SQL Function in Select statement

    Hi
    I am calling a function in select statement. The query works in Toad and PL/SQL developer except SQL plus and disconnecting Oracle connection.
    The error is “ERROR at line 1: ORA-03113: end-of-file on communication channel”.
    When I called the same query from BC4J View Object the error message is “java.sql.SQLException: No more data to read from socket”.
    Can any one advise me please?
    Thanks
    Srini

    Srini
    I've seen similar cases in the past with 9.2.0.x (x <= 5). What Oracle version are you using? It's worth checking the bug database (I can't just now - I don't have a valid support id in my current contract). And as Warren says, post your SQL query.
    HTH
    Regards nigel

  • Problem with case when statement, when doing an insert.

    Hi there,  I have written the following coding, that has got an issue, due to not being allowed null values to be inserted into a column on a table.
    ,Case 
    WHENCL.LocationISNOTNULLANDCL.[Floor]ISNOTNULLANDCL.RoomISNULLTHEN
    (SELECTTop1
    FL.FloorIDFROMPMIS.dbo.ConsentLocationF
    JOINtbBuildingBONB.BuildingNumber=F.LocationCOLLATELatin1_General_CI_AS
    JOINtbFloorFLONFL.BuildingID=B.BuildingID
    WHEREF.Location=CL.LocationANDFL.FloorName=CL.[Floor]COLLATELatin1_General_CI_AS)
    WHENCL.LocationISNOTNULLANDCL.[Floor]ISNOTNULLANDCL.RoomISNOTNULLTHEN
    (SELECTTop1
    R.RoomIDFROMPMIS.dbo.ConsentLocationF
    JOINtbBuildingBONB.BuildingNumber=F.LocationCOLLATELatin1_General_CI_AS
    JOINtbFloorFLONFL.BuildingID=B.BuildingID
    JOINtbRoomRONR.FloorID=FL.FloorID
    WHEREF.Location=CL.LocationANDFL.FloorName=CL.[Floor]COLLATELatin1_General_CI_ASANDR.RoomNumber=CL.RoomCOLLATELatin1_General_CI_AS)
    ENDasParentID
    I have written this case when statement above to find a ParentID.  I have got the case when statement to work individually, e.g. I get the correct records back.  However when I put it into a insert statement, as I want this ParentID to go
    into a column in a table I get an error with the following message. 
    Cannot insert the value NULL into column 'ParentID', table 'K2_Master_4_Test.dbo.tbConsentLink'; column does not allow nulls. INSERT fails.
    Can someone point me in the right direction, as to what I need to do to get this case when statement working?  Also no I cannot change the structure of the table to allow for null values either.  So I need to modifiy this one.

    The error is valid because your table column has 'not null' constraint and when your case expression does not satisfy  either of the 'when' conditions, it is returning NULL to the insert statement.
    you can get around this by defining a generic value. Simple Example
    select case when <<Column>>=1 then 'First' When <<Column>>=2 then 'Second' Else 'Last' End
    In this case, when column value is not 1 or 2, it will insert 'Last'.
    So, you have to do something like this...i.e add ELSE condition to your case..
    Hope it Helps!!

Maybe you are looking for