1樓:
這個不需要用join 直接在write前加一句select single maktx from makt into mm_data-maktx where matnr = mm_data-matnr.
還有你之前的select有點問題,
select * from mara into corresponding fields of table mm_data where ...
這樣寫比較好,會從資料庫想到表中的相應字段。
如果非要用join,再追問吧
2樓:靜水逐花
select mara~matnr mara~ersda mara~mtart makt~maktx
into table mm_data
from mara
inner join makt on mara~matnr = makt~matnr
where mara~matnr in mm1 amd makt~spras = sy-langu.
abap 加入有10個表需要鏈結在一起,直接用inner join肯定是效能不好的,現在我如果分開,用兩個三個錶鏈 5
3樓:
朋友,慎用inner join,這個語句的效率不是看鏈結數的多少,是看鏈結兩端表的大小。
我上次用ekes mkpf mseg鏈結,單這個語句跑了30+分鐘。如果你要鏈結的表不是系統裡面的大表,可以考慮使用,否則請慎重,因為這個語句計算笛卡爾乘積,鏈結的表有多少記錄全給乘起來計算訪問次數的~實在不行就建十個內錶,格式跟資料庫表相同,先把資料全部拉到內錶裡面再進行計算匹配,這樣就快很多,當然顯得笨拙了,不過實用。inner join這種看似高階實則非常佔記憶體的語句一定要慎重。。。
4樓:匿名使用者
最穩妥的辦法就是把你的個個方案都實現一邊,然後找接近實際的資料量進行測試,分別看一下各個所需的時間,然後決定採用哪種方法. 因為這個的效能直接跟你表內的資料數量有關. 但有個大多數時候都是用的準則,inner join的效能在大多數時候都比不上 fae(for all entries).
5樓:匿名使用者
看每個表的資料量,一般分三次查詢,每次查詢一類。
第一次:3.第二次:3.第三次:4. 類似這樣的
6樓:靜水逐花
肯定不需要十個表inner join
abap問題。 我想問下。為什麼我用inner join 關聯表的時候。為什麼取出的資料會進行迴圈。
7樓:匿名使用者
from ekko
inner join ekbe on ekko~ebeln = ekbe~ebeln
ekbe和ekko用ebeln連線的話,是一對多關係,所以會有重覆記錄出現。
8樓:匿名使用者
樓上正解 而且看你select 的 字段 沒有必要關聯ekbeekbe~ebeln 換成 ekko~ebeln去掉 inner join ekbe on ekko~ebeln = ekbe~ebeln
就ok了
9樓:1柳夢狂
1樓正解,表關係的問題,如果不想重複嘗試用left join
關於abap中inner join 還有for all entries in 的問題~各位大神來幫幫忙啊~小女子**等候! 20
10樓:忽悠可恥
inner/left/right/outter join是在訪問db的時候適用的!而當你需要將一內表中的某個欄位的值作為選擇條件來使用的話,就要用到for all entries命令!語法為:
selct (field name)
into table (inner table name)
from (db table name)
for all entries in it_data
where (condition field name) = it_data-(field name).
(it_data即為選擇條件的值所在的內錶)
注意:在用for all entries時應注意:
1.it_data不可為空,如為空,系統將忽視該條件,導致該選擇條件無效
2.在抽取欄位中應將db中所有主鍵寫全,否則系統會將符合條件的所有記錄以抽取欄位做distinct,導致抽取資料缺失
3.最好將it_data中選擇用字段做排序後刪除重覆記錄,這樣會提高效能!
希望能幫到你!
11樓:
forr all entries in:查詢條件在內表中,無需使用迴圈內錶loop at itab, select * from table ,減少與資料庫互動,提高資料讀取速度。
inner join:普通的透明表可以用,簇表不可以使用。
12樓:匿名使用者
這個其實就是把資料庫裡面的資料都讀到內錶裡面處理,因為不停的訪問資料庫的話,效率很低,直接一次把所有需要的資料都讀到內表裡通過記憶體處理,效率會高幾倍到十幾倍。簡單的舉個例子,就是比如你的內表裡有物料號,你現在需要去資料庫表中取物料描述,如果你迴圈內錶,然後在迴圈中用select去資料庫中查詢物料描述,這樣就會不停的訪問資料庫。如果有幾千條物料,就會訪問資料庫幾千次。
但是我們也不可能一次把幾百萬甚至幾千萬的物料描述一次全部從資料庫裡讀到內錶中,這就需要我們通過for all entries in根據內錶中的物料號作為條件,在資料庫中一次把我們需要的物料描述取出來。至於你說的inner join是可以用的,不過效率很低,不推薦這樣用。你剛學可能對效率的感覺還很差,後面會慢慢明白的。
abap 取數排序之後怎麼取第一行
13樓:匿名使用者
read int_tab into wa_tab index 1.
14樓:匿名使用者
黃石美瞳倉庫,阿壩美瞳批發,大同美瞳代發哪家不錯
abap/4程式設計師的職業生涯?
15樓:匿名使用者
不過就偶個人看法而言,我不贊成樓上幾位的看法,既然要做sap顧問,我覺得就應該抓住機會,先熟悉sap流程,熟悉sap的個方面操作以及接觸與客戶溝通,其實最主要一點就是英文要強.這樣我覺得才是發展方向.如果致力於abap程式開發,可以繼續做這工作.
其實現在的sap顧問,並不要求你程式設計,sap流程和sap配置全懂,只需要會其中一項,主要是後面兩項.所以,就個人發展和時間的掌握情況來說,應該走捷徑.
16樓:匿名使用者
建議先做兩年開發,然後轉到諮詢,這樣你會比較有優勢;通過技術開發可以使你對sap的構架和技術實現上有更深的認識,以後做諮詢提出的解決方案有更切實際的被實現。當然你對業務邏輯也要很精通了。祝好運。
另介紹一下你是怎麼得到abap、4程式設計師的offer的?
17樓:匿名使用者
個人覺得有機會從事abaper和顧問的話,我會選擇abaper,動了內部之後,再有一倆個專案就差不多達到顧問水平了。
18樓:匿名使用者
很多高階顧問都是從abaper開始的, 所以欣然接受這個offer吧, 你的未來是光明的。祝好運。
5s還是7 1 2版本怎么用4g
看手機型號,1528需要越獄才行,1530就可以用 去你卡的營業廳開通,鎖住了,她們能幫你弄好 蘋果5sa1530。7.1.2版本怎麼公升級才可以用4g網路?a1530可以用移動4g,我前乙個手機就是,你去營業廳說一下,換4g卡 去論壇看看 有破解的 你要用移動4g肯定沒希望,聯通還有機會 ios7...
魔獸世界qs40怎么用技能,魔獸世界qs40怎麼用技能
目前你只有審判和驅邪術可用,驅邪的cd時間還過長,打乙個怪就能用一次吧,懲戒公升級前期就是審判和平砍,沒別的了,審判前要記得加上聖印,公升級用天賦點的命令聖印就不錯,以後打副本再用殉難。血量低於20 的可以憤怒之錘,但個人不推薦使用,耗藍大,而且多是過量傷害,等智者審判的天賦點出來再用吧,那時候懲戒...
怎么用C 編譯1 2 3 4
include int factorial int n return sum int sum int n return sum void main 都編譯執行通過了,可以直接拷過去用了。直接輸入7,如果不想輸入,直接將主函式改成 void main 還有個更省cpu和記憶體的做法,就是把乘法和加法放...