複数のフィールドを選択しても、適切な構文がわからないSQL文をABAPで作成しようとしています。ABAP WorkbenchでSQLの正しい構文は何ですか?
これは私がそれをやっていたものだったエラーを生成:
SELECT field1, field2
FROM table INTO txtbox
WHERE field3 = txtInput.
ENDSELECT.
すべてのフィールドが同じテーブルです。
複数のフィールドを選択しても、適切な構文がわからないSQL文をABAPで作成しようとしています。ABAP WorkbenchでSQLの正しい構文は何ですか?
これは私がそれをやっていたものだったエラーを生成:
SELECT field1, field2
FROM table INTO txtbox
WHERE field3 = txtInput.
ENDSELECT.
すべてのフィールドが同じテーブルです。
構文ABAPのバージョンに依存してもよいです。
おそらく、クエリの変数の宣言/選択の誤りが原因です。
いくつかの例:
*Select all fields of a SAP database table into in internal table
SELECT *
FROM ekko
INTO TABLE it_ekko.
*Select directly into an internal table
SELECT bukrs belnr gjahr buzei mwskz umsks prctr hkont xauto koart
dmbtr mwart hwbas aufnr projk shkzg kokrs
FROM bseg
INTO TABLE it_bseg.
* Select directly into an internal table where fields are in a
* different order or not all fields are specified
SELECT bukrs belnr gjahr buzei mwskz umsks prctr hkont xauto koart
dmbtr mwart hwbas aufnr projk shkzg kokrs
FROM bseg
INTO CORRESPONDING FIELDS OF TABLE it_bseg.
*Select... endselect command (to structure)
SELECT bukrs belnr gjahr buzei mwskz umsks prctr hkont xauto koart
dmbtr mwart hwbas aufnr projk shkzg kokrs
FROM bseg
INTO wa_bseg.
APPEND wa_bseg TO it_bseg.
ENDSELECT.
*Select FOR ALL ENTRIES command
SELECT bukrs belnr gjahr bldat monat budat xblnr awtyp awkey
UP TO 100 ROWS
FROM bkpf
INTO TABLE it_bkpf.
IF sy-subrc EQ 0.
* The FOR ALL ENTRIES comand only retrieves data which matches
* entries within a particular internal table.
SELECT bukrs belnr gjahr buzei mwskz umsks prctr hkont xauto koart
dmbtr mwart hwbas aufnr projk shkzg kokrs
FROM bseg
INTO TABLE it_bseg
FOR ALL ENTRIES IN it_bkpf
WHERE bukrs EQ it_bkpf-bukrs AND
belnr EQ it_bkpf-belnr AND
gjahr EQ it_bkpf-gjahr.
ENDIF.
残念ながら、完全に真実ではありません。新しいOpenSQLでは、フィールドはコンマで区切ることができます。詳細はこちら[こちら](http://help.sap.com/abapdocu_740/en/index.htm?file=abenopensql_strict_modes.htm)。 – Jagger
@ジャガー:情報をありがとう、私は私の答えを編集しました。 私は新しいバージョンの変更点の変更を認識していませんでした。 –
まず、2つのフィールドを1つの変数に選択しようとしています。それはあなたが達成しようとしているものですか? txtboxは構造ですか?
秒、構文関連において - ABAPのバージョンによってはyoushould書き込みのいずれか
SELECT field1, field2
FROM table INTO @txtbox
WHERE field3 = @txtInput.
ENDSELECT.
または
SELECT field1 field2
FROM table INTO txtbox
WHERE field3 = txtInput.
ENDSELECT.
それは同様にABAPのバージョンにdependesエラーメッセージが表示され、完全なコード(。。すなわち、変数宣言、テーブル構造の定義) – vwegert
を提供してください。 ABAPのバージョンは何ですか? – Christian
エディタの "選択"のf1を押してください –