六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 168|回复: 0

abap 中 for all entries in 中的 distinct 功能

[复制链接]

升级  7.8%

370

主题

370

主题

370

主题

探花

Rank: 6Rank: 6

积分
1156
 楼主| 发表于 2013-2-7 23:07:55 | 显示全部楼层 |阅读模式
用for all entries in 做查询的时候,能够进行自动的distinct,

请看如下的例子:

<!--StartFragment --><style type="text/css">SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #AAC2A7;}.L1S33 {color: #4DA619;}.L1S52 {color: #0000FF;}</style>
REPORTZ_LJC222.



types:beginofty_mm,
matnrtypemara-matnr,
endofty_mm.


types:beginofty_makt,
matnrtypemara-matnr,
sprastypemakt-spras,
maktxtypemakt-maktx,
endofty_makt.


datammtypetableofty_mmwithheaderline.
datamakttypetableofty_maktWITHHEADERLINE.


mm-matnr='000000000000034590'.
appendmm.

select
matnr
spras
maktx
frommakt
intoCORRESPONDINGFIELDSOFTABLEmakt
forALLENTRIESINmm
wherematnr=mm-matnr.

loopatmakt.
write:/
makt-matnr
,
makt-spras
,
makt-maktx
.
endloop.

输出:
34590 ZH 小狗
34590 EN little dog


如果代码改成:

<!--StartFragment --><style type="text/css">SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #AAC2A7;}.L1S31 {font-style: italic;color: #808080;}.L1S33 {color: #4DA619;}.L1S52 {color: #0000FF;}</style>
REPORTZ_LJC222.



types:beginofty_mm,
matnrtypemara-matnr,
endofty_mm.


types:beginofty_makt,
matnrtypemara-matnr,
sprastypemakt-spras,
maktxtypemakt-maktx,
endofty_makt.


datammtypetableofty_mmwithheaderline.
datamakttypetableofty_maktWITHHEADERLINE.


mm-matnr='000000000000034590'.
appendmm.

select
matnr
*spras
*maktx
frommakt
intoCORRESPONDINGFIELDSOFTABLEmakt
forALLENTRIESINmm
wherematnr=mm-matnr.

loopatmakt.
write:/
makt-matnr
*,
*makt-spras
*,
*makt-maktx
.
endloop.

输出为:

34590

第一段代码中输出两条数据,而第二段代码只输出了一条。因为第二段中查询的时候只查询了 matnr ,二两条数据的matnr是一样的,其中的一条被 distinct 掉了。所以就剩下一条了。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表