2015-08-08 68 views

回答

3

范围表可用于open sql查询(使用IN子句)作为限制。您可以在查询结果中定义几个范围以包含或排除。例如:

report ZZTEST. 

types: 
    lt_kunrng type range of kunnr_d. 

data: 
    it_rnrng type standard table of lt_kunrng, 
    wa_rnrng type lt_kunrng, 
    it_kna1 type standard table of kna1. 

START-OF-SELECTION. 

move: 
    'I' to wa_rnrng-sign, 
    'EQ' to wa_rnrng-option, 
    '0001000000' to wa_rnrng-low, 
    '0002999999' to wa_rnrng-high. 
append wa_rnrng to it_rnrng. 

move: 
    'I' to wa_rnrng-sign, 
    'EQ' to wa_rnrng-option, 
    '0003500000' to wa_rnrng-low, 
append wa_rnrng to it_rnrng. 

select * from kna1 into corresponding fields of table it_kna1 
    where kna1~kunnr in it_rnrng. 

这个例子中手动定义一个RANGE表,增加了两排它然后查询表透明与KNA1此范围表。内部表it_kna1应该包含所有KNA1记录,其中KUNNR在1000000和2999999之间,而记录则使用KUNNR 35000000.因此,您可以在单个范围表中组合多个范围。

字段SIGN包含任一“I”为包含或“E”为排除(意味着该行应包括或排除匹配所定义的范围的记录),场OPTION定义比较器(“EQ”为相等,' GT'大于','GE'大于或等于等等)。字段HIGHLOW包含实际的范围。如果您只想查询单个值,则不必同时提供LOWHIGH,只需提供LOW(当然还有SIGNOPTION)。

RANGE表格也在您在报告中定义SELECT-OPTION时创建。用户然后可以使用选择屏幕来定义他们想要在报告中使用的范围。

REPORT ZZTEST. 

TABLES: kna1. 

DATA: it_kna1 type standard table of kna1. 

SELECT-OPTION: 
    so_kndrng for kna1-kunnr. 

START-OF-SELECTION. 

select * from kna1 into corresponding fields of it_kna1 
    where kna1~kunnr in so_kndrng. 

有关范围表,你也可以参考官方文档here

+0

范围表的使用不限于打开的SQL。它也可以用于if语句等。 –

相关问题