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
-
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.
ConsultoraHi 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 -
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 humanSELECT 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?
ThanksHi 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. -
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 AMThe 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,
PijushHi 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!!
brHi, 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 existRole 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. -
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 PMNow 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
SriniSrini
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
-
Is there a way to identify the survey respondent?
Can you identify who completed the survey by name or by email address?
-
My problem is that I have an account that was set up for the country Kuwait and now I want to change it to the US (or UK) so I can use iTunes store cards but when I get to the payment info there is no "none" option! And i can't go back and download a
-
SAP System has RAW(16) fields for GUID. This type is equals to base64Binary with maxLength 16. The sender system has GUID as 32 lenght string for example - 44239C1A8E35002E000000000A121A29 How do I have to encode this GUID? I have tried 4 ways but th
-
Invoking a Crystal Report stored on a BOXI3.1 server from a remote web page
We would like to run Crystal Reports stored on our BOXI 3.1 server directly from an in-house intranet website written in ASP.Net. Is there a recommended way of achieving this? Some possible options we are considering are: 1) A pop-up window opens wit
-
Select st. using AND to find matches not working
HI, Hopefully this one will be easy. I've need to produce the results of a query for customers who are on two plans (product1 & product2). THis should be an easy use of where name like 'product1%' and name like 'products2%'. THis is not working, I've