‎2007 Apr 09 7:16 AM
Hi Expert,
I have a problem when I try to use a variable with LIKE command at SQL command.
The ABAP source code as below.
FORM get_sales_forecast.
DATA: yyyymm(6) TYPE C.
yyyymm = sy-datum+0(6).
SELECT pbimwerks pbimmatnr pbimbedae pbimversb pbim~pbdnr
pbimbdzei pbedpdatu pbedplnmg pbedmeins
INTO TABLE t_pbim_ed
FROM pbim INNER JOIN pbed ON
pbimbdzei = pbedbdzei
FOR ALL ENTRIES IN t_marc
WHERE pbim~matnr = t_marc-matnr
AND pbim~werks = p_werks
AND pbim~loevr = SPACE
AND pbed~loevr = SPACE
AND pbed~pdatu LIKE 'yyyymm%'.
ENDFORM.
When I use a Variable
pbed~pdatu LIKE 'yyyymm%'. give me zero record
Try to use a Literal
pbed~pdatu LIKE '200704%'. give me some records
Could anyone please tell me how to use a variable in LIKE command?
Regards
Tiwa Noitawee.
‎2007 Apr 09 7:20 AM
TRY LIKE THIS..
DATA : MONYR(6) TYPE C,
PAT(7).
MONYR = SY-DATUM+0(6).
CONCATENATE MONYR '%' INTO PAT.
SELECT pbimwerks pbimmatnr pbimbedae pbimversb pbim~pbdnr
pbimbdzei pbedpdatu pbedplnmg pbedmeins
INTO TABLE t_pbim_ed
FROM pbim INNER JOIN pbed ON
pbimbdzei = pbedbdzei
FOR ALL ENTRIES IN t_marc
WHERE pbim~matnr = t_marc-matnr
AND pbim~werks = p_werks
AND pbim~loevr = SPACE
AND pbed~loevr = SPACE
AND <b>pbed~pdatu LIKE PAT</b>.
REGARDS
SHIBA DUTTA
‎2007 Apr 09 7:20 AM
TRY LIKE THIS..
DATA : MONYR(6) TYPE C,
PAT(7).
MONYR = SY-DATUM+0(6).
CONCATENATE MONYR '%' INTO PAT.
SELECT pbimwerks pbimmatnr pbimbedae pbimversb pbim~pbdnr
pbimbdzei pbedpdatu pbedplnmg pbedmeins
INTO TABLE t_pbim_ed
FROM pbim INNER JOIN pbed ON
pbimbdzei = pbedbdzei
FOR ALL ENTRIES IN t_marc
WHERE pbim~matnr = t_marc-matnr
AND pbim~werks = p_werks
AND pbim~loevr = SPACE
AND pbed~loevr = SPACE
AND <b>pbed~pdatu LIKE PAT</b>.
REGARDS
SHIBA DUTTA
‎2007 Apr 09 7:21 AM
YYYYMM% it has no meaning ,
so u have
concatenate YYYYMM with % into X.
then call
no sytax checks please.
Regards
Prabhu
‎2007 Apr 09 7:21 AM
You can do as below.
data: yyyymm(7) TYPE C.
concatenate sy-datum+0(6) '%' into yyyymm.
SELECT pbimwerks pbimmatnr pbimbedae pbimversb pbim~pbdnr
pbimbdzei pbedpdatu pbedplnmg pbedmeins
INTO TABLE t_pbim_ed
FROM pbim INNER JOIN pbed ON
pbimbdzei = pbedbdzei
FOR ALL ENTRIES IN t_marc
WHERE pbim~matnr = t_marc-matnr
AND pbim~werks = p_werks
AND pbim~loevr = SPACE
AND pbed~loevr = SPACE
AND pbed~pdatu LIKE yyyymm.
‎2007 Apr 09 7:23 AM
Hi,
The statement LIKE 'XXXX%' will give you only the matching records thats been mentioned. i.e. for example if you give the condition LIKE 'QM%' it gives you all the records which starts with QM. In your case if you have given it as LIKE 'yyyymm%' and it will search to get the records which starts with yyyymm. SO you are not getting any output.
Hope its clear how to use the LIKE statement.
Regards,
Ram
Pls reward points if helpful.
‎2007 Apr 09 8:04 AM
The problem has already resolved.
Thanks everyone.
Regards,
Tiwa Noitawee