‎2007 Sep 23 1:13 PM
Dear All,
I have a problem while fetching records from two tables LIPS and VAPMA on basis of date difference. My SQL conditions/statements are as follows.
DATA myvar type p.
1. SELECT SUM( lips~lfimg )
FROM lips INNER JOIN vapma ON lipsvgbel = vapmavbeln
AND vapmamatnr = lipsmatnr
INTO myvar
WHERE DATEDIFF(lipserdat , vapmaaudat) = 2.
2. SELECT SUM( lips~lfimg )
FROM lips INNER JOIN vapma ON lipsvgbel = vapmavbeln
AND vapmamatnr = lipsmatnr
INTO mywar
WHERE
lipserdat - vapmaaudat = 2.
Above SQL statements are not working, kindly help me out. Thanking you in advance.
Ahsan Majeed
‎2007 Sep 23 2:53 PM
Hi
Do like this:
data: begin of itab occurs 0,
vbeln like lips-vbeln,
posnr like lips-posnr,
erdat like sy-datum,
lfimg like lips-lfimg,
audat like sy-datum,
d_diff type i,
end of itab.
data : v_qty like lips-lfimg.
SELECT avbeln aposnr aerdat alfimg b~audat into table itab
FROM lips as a INNER JOIN vapma as b
ON avgbel = bvbeln.
clear v_qty.
sort itab by vbeln posnr.
loop at itab.
itab-d_diff = itab-erdat - itab-audat.
if itab-d_diff = 2.
v_qty = v_qty + itab-lfimg.
endif.
endloop.
Reward if useful
regards
Anji
‎2007 Sep 23 2:53 PM
Hi
Do like this:
data: begin of itab occurs 0,
vbeln like lips-vbeln,
posnr like lips-posnr,
erdat like sy-datum,
lfimg like lips-lfimg,
audat like sy-datum,
d_diff type i,
end of itab.
data : v_qty like lips-lfimg.
SELECT avbeln aposnr aerdat alfimg b~audat into table itab
FROM lips as a INNER JOIN vapma as b
ON avgbel = bvbeln.
clear v_qty.
sort itab by vbeln posnr.
loop at itab.
itab-d_diff = itab-erdat - itab-audat.
if itab-d_diff = 2.
v_qty = v_qty + itab-lfimg.
endif.
endloop.
Reward if useful
regards
Anji
‎2007 Sep 24 5:55 AM
Dear Anji,
Thanks for your reply. Actually i want this logic in SQL statement, later i figure it out that this logic is not possible in sql where statement because this is incorrect statement.
Consider this:
field1 = 4
field2 = 2
WHERE field1 - field2 = 2
compiler interprets it as
WHERE 2 = 2 " this is illogical condition thats why its not possible
However i really appreciate your reply. Once again thank you and points for you.
Regards,
Ahsan Majeed