惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Secure Thoughts
Security Latest
Security Latest
Simon Willison's Weblog
Simon Willison's Weblog
O
OpenAI News
GbyAI
GbyAI
L
LINUX DO - 最新话题
A
Arctic Wolf
T
Tor Project blog
G
GRAHAM CLULEY
I
InfoQ
博客园_首页
IT之家
IT之家
The Register - Security
The Register - Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
The GitHub Blog
The GitHub Blog
Blog — PlanetScale
Blog — PlanetScale
N
Netflix TechBlog - Medium
K
Kaspersky official blog
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
U
Unit 42
PCI Perspectives
PCI Perspectives
量子位
P
Palo Alto Networks Blog
S
Securelist
T
Troy Hunt's Blog
博客园 - 【当耐特】
Recorded Future
Recorded Future
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
Engineering at Meta
Engineering at Meta
T
The Blog of Author Tim Ferriss
博客园 - 聂微东
罗磊的独立博客
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
B
Blog RSS Feed
NISL@THU
NISL@THU
C
Cisco Blogs
T
Threatpost
有赞技术团队
有赞技术团队
Forbes - Security
Forbes - Security
Hugging Face - Blog
Hugging Face - Blog
Last Week in AI
Last Week in AI
T
The Exploit Database - CXSecurity.com
Cloudbric
Cloudbric
Cyberwarzone
Cyberwarzone
Google DeepMind News
Google DeepMind News
C
Cyber Attacks, Cyber Crime and Cyber Security

博客园 - helloxuxu

简介DOMINO内置域和CGI变量 Domino系统中B/S下附件链接的处理方法 如何在Domino中使用文本文件注册用户 IBM Lotus Notes/Domino技术知识文档汇总 (2008) NOTES.INI 設定 给Domino系统管理员的十二项建议 用代码设置Excel单元格的格式 - helloxuxu - 博客园 给Domino系统管理员的十二项建议 Javascript中没有自带的将字符转换成日期型的函数 ABAP 函数 WebSphere Application Server v6中的问题诊断以及日志策略 如何在Web上執行不同欄位類型的欄位驗證? Lotus Notes常见问题答疑 谈谈Visual Basic应用程序的几种打印方法 DB1访问DB2 在VB6中导出EXCEL,FOXPRO,PRODOX格式的表 如何将A文档的附件拷贝的B文档中 SAP ABAP程序优化方法(搜集自论坛) 用 LotusScript 实现 Excel 报表的自动生成和操作
查询
helloxuxu · 2007-02-10 · via 博客园 - helloxuxu

13. 将数据选择至内表(多行)

DATA: BEGIN OF tab_type,
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
END OF tab_type.

DATA: spfli_tab1 TYPE TABLE OF spfli,
spfli_tab2 LIKE TABLE OF tab_type.

SELECT *
FROM spfli
INTO TABLE spfli_tab1
WHERE cityfrom = 'NEW YORK' AND cityto = 'LONDON'.

SELECT carrid connid
FROM spfli
INTO CORRESPONDING FIELDS OF TABLE spfli_tab2
WHERE cityfrom = 'NEW YORK' AND cityto = 'FRANKFURT'.

LOOP AT spfli_tab2 INTO tab_type.
WRITE: / tab_type-carrid,
tab_type-connid.
ENDLOOP.

14. 动态指定查询条件

DATA: cond(72) TYPE c,
itab LIKE TABLE OF cond,
city1(10) VALUE 'FRANKFURT',
city2(10) VALUE 'NEW YORK',
itab_spfli LIKE TABLE OF spfli WITH HEADER LINE.

CONCATENATE 'CITYFROM = ''' city1 '''' INTO cond.
APPEND cond TO itab.
CONCATENATE 'OR CITYFROM = ''' city2 '''' INTO cond.
APPEND cond TO itab.

SELECT *
FROM spfli
INTO TABLE itab_spfli
WHERE (itab).

LOOP AT itab_spfli.
WRITE: /
itab_spfli-cityfrom,
itab_spfli-cityto.
ENDLOOP.

15. 多表结合查询-select语句嵌套

DATA: wa_carrid TYPE spfli-carrid,
wa_connid TYPE spfli-connid,
wa_carrname TYPE scarr-carrname.

SELECT carrid connid
FROM spfli
INTO (wa_carrid, wa_connid)
WHERE cityfrom = 'NEW YORK'.
SELECT carrname
FROM scarr
INTO wa_carrname
WHERE carrid = wa_carrid.
WRITE / wa_carrname.
ENDSELECT. "内循环结束
ENDSELECT. "外循环结束

每当在表SPFLI中查询到一个符合条件的carrid值,系统就重新对SCARR进行一次
查询

16. 多表结合查询-for all entries

DATA: BEGIN OF wa_spfli,
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
END OF wa_spfli,
BEGIN OF wa_scarr,
carrid TYPE scarr-carrid,
carrname TYPE scarr-carrname,
END OF wa_scarr,
spfli_tab LIKE TABLE OF wa_spfli.

SELECT carrid connid
FROM spfli
INTO TABLE spfli_tab
WHERE cityfrom = 'NEWYORK'.

SELECT carrid carrname
FROM scarr
INTO wa_scarr FOR ALL ENTRIES IN spfli_tab "比对spfli_tab中的每个元组
WHERE carrid = spfli_tab-carrid.
WRITE / wa_scarr-carrname.
ENDSELECT.

先将SPFLI中符合条件数据选进一个内表,再…

17. 组合查询

REPORT Z_SELECT_JOIN.

data: wa_carrid type spfli-carrid,
wa_connid type spfli-connid,
wa_carrname type scarr-carrname.

select spfli~carrid scarr~carrname spfli~connid
from spfli inner join scarr on scarr~carrid = spfli~carrid
into (wa_carrid, wa_carrname, wa_connid)
where spfli~cityfrom = 'NEW YORK'.
write: / wa_carrid, wa_carrname, wa_connid.
endselect.

18. 分组总计查询

data: carrid type sflight-carrid,
minimum type p decimals 2,
maximum type p decimals 2.

write: / 'Carrier ID',
at 15 'Minimum Price',
at 30 'Maximum Price'.

select carrid MIN( price ) MAX( price )
into (carrid, minimum, maximum)
from sflight
group by carrid
having MIN( price ) > 500
order by carrid descending.
write: / carrid, minimum, maximum.
endselect.