【SAP小ワザ】SE16Hの使い方を徹底解説!テーブル結合やグループ化による集計方法

登場人物紹介

三崎レイナ
社会人1年目。新卒でITコンサルティングファームに就職。初配属がSAPプロジェクトにアサインされる。SAPがわからないことだらけで悩んでいたところ、会社の先輩にSAPラボの所長を紹介され、毎週末に所長とSAPのお勉強中!

博士
SAPラボの所長。SAP大好き博士!SAP導入プロジェクトを構想策定~運用保守まであらゆるフェーズを数多く経験。
いまは優しきおじいちゃんだが、プロマネバリバリの時代はかなり怖かったらしい。現在は引退し、SAPの後進育成と啓蒙活動に従事中!

この記事を読むメリット

  • T-CODE:SE16Hを用いてテーブルの検索とグループ化による集計をすることができるようになります。
  • T-CODE:SE16Hを用いて複数テーブルを外部結合もしくは外部結合して検索をすることができるようになります。
レイナ

T-CODE:SE16やSE16Nは知っているけどSE16Hなんてのがあるのね!便利そうだけど、どうやって使うんだろう…。

T-CODE:SE16HではSE16やSE16Nと同じようにテーブルを条件指定して検索できるのはもちろん、グループ化して集計した結果を表示させたり、さらにグループ化して集計した項目に対して条件を指定することができます。

また、テーブルを結合(内部結合/外部結合)した検索もできるようになり、保守での調査や開発でのテストデータ検索などに使うことができて非常に便利なんです!

それではさっそくT-CODE:SE16Hの使い方を徹底解説していきます!

この記事のポイント

SE16Hへのアクセスの補足

T-CODE:SE16HT-CODE:SE16Tの以下メニューからアクセスすることも可能です。

トランザクションコードSE16TからトランザクションコードSE16Hへアクセスする方法

【SE16Hの使い方①】グループ化・集計

T-CODE:SE16Hを用いたグループ化や集計する方法について以下の3点を解説します。

  • グループ化してレコード出力
  • (グループ化したレコードの数値項目に対して)合計値を出力
  • (グループ化したレコードの数値項目に対して)最大値/最小値/平均値を出力

1.グループ化してレコード出力

グループ化とは、テーブルのある項目単位で集計する際に使用します。
T-CODE:SE16Hでは集計したレコード数が「エントリ数」として表示されます。

トランザクションコードSE16Hで検索する際のグループ化のイメージ
博士

実際の使い方は以下の例を参照するのじゃ!
(EKPO:購買発注明細テーブルを用いているぞい)


  • 集計したい項目の「グループ」にチェックを入れることで、その項目でグループ化することが可能です。
  • グループ化する項目は複数選択可能です。
トランザクションコードSE16Hでのグループ化の検索方法と検索結果

上記のレコードのうち、「グルーピング最小」に最小エントリ数を入力することで、その値以上のエントリ数のレコードのみ表示させるような条件も付けることもできます。

トランザクションコードSE16Hでのグループ化の検索方法と検索結果(グルーピング最小の指定あり)

2.合計値を出力

博士

実際の使い方は以下の例を参照するのじゃ!
(先ほど同様、EKPO:購買発注明細テーブルを用いているぞい)

テーブルの数値項目については、「合計」にチェックすることによりグループ化されたレコードの合計値も表示させることができます。

トランザクションコードSE16Hでのグループ化の合計値の検索方法と検索結果

合計値に対して条件を指定して検索結果を絞り込むことができます。
条件は「HAVING Option」「HAVING値」を使用します。

トランザクションコードSE16Hでのグループ化の合計値の検索方法と検索結果(Having値を設定した場合)

3.最大値/最小値/平均値を出力

グループ化されたレコードについて、合計以外でも集計することが可能です。
以下のように最大値・最小値・平均値が選択できます。

トランザクションコードSE16Hでのグループ化の集計(MAX・MIN・AVG)の検索方法と検索結果
博士

実際の使い方は以下の例を参照するのじゃ!
(先ほど同様、EKPO:購買発注明細テーブルを用いているぞい)

テーブルの数値項目については、最大値・最小値・平均値を「集計」で選択することによりグループ化されたレコードの集計結果も表示させることができます。

トランザクションコードSE16Hでのグループ化の集計の検索方法と検索結果(MAXを指定した場合)

【SE16Hの使い方②】テーブル結合

ここではT-CODE:SE16Hを用いて複数のテーブルを結合し検索する方法を解説します。
慣れるとクイックビュアを作るより早くテーブル結合した検索ができるようになるのでぜひ覚えておくと良いでしょう。(前提としてSQLの基礎知識が必要となります。)

設定画面

T-CODE:SE16Hの外部結合定義から設定することができます。
いきなりですがテーブル結合の定義を設定をした画面をお見せします!
(ある程度SQLの知識があれば、下の画面を見るだけで使いこなせるようになる方もいるかもしれません)

設定手順については後続で詳しく解説していきます。

T-CODE:SE16Hのテーブル結合の設定画面

上の画面の設定を用いたT-CODE:SE16Hでの検索結果は以下のようになります。

T-CODE:SE16Hのテーブル結合した際の検索結果画面

設定手順

それでは設定手順を詳しく見ていきましょう。
実際のSAPの画面上では購買発注伝票のヘッダテーブル:EKKOと明細テーブル:EKPOを結合する手順を例に解説していきます。

まずはT-CODE:SE16Hの画面で結合元となるテーブルIDを指定し、外部結合定義の画面を開きます

T-CODE:SE16Hの外部結合定義の設定手順(外部結合定義画面への遷移)

外部結合定義画面では外部結合定義IDと名称を入力し、新規作成ボタンを押下します。
※外部結合定義IDと名称には特に制約は無いので自分で分かりやすい名前を付けましょう。
※新規作成の右側のアイコンを選択することで変更や削除等も実行です。

T-CODE:SE16Hの外部結合定義の設定手順(外部結合定義IDの設定)

「二次テーブルの定義」の区画の設定に移り以下を設定します。

  • 二次テーブル
    結合するテーブルIDを入力します。
  • 出力ボタン
    押下するとテーブルの項目が表示されます。
    検索結果に出力したい項目にはチェックを入れます。また数値項目については集計(最大値/最小値/平均値)を選択可能です。
  • 内部結合
    内部結合とする場合はチェックを付けます。外部結合とする場合はチェックを外します。
T-CODE:SE16Hの外部結合定義の設定手順(二次テーブルの定義と出力項目の設定)

設定した二次テーブルを選択して虫眼鏡ボタンを押下します。すると「選択された二次テーブル」に選択したテーブルIDが表示されます。

T-CODE:SE16Hの外部結合定義の設定手順(二次テーブルの選択)

「二次テーブルのアクセス定義」の区画の設定に移ります。
登録ボタンを押下すると入力できるようになるので、以下を設定します。

  • テーブル項目
    二次テーブルの項目名を入力します。
  • Method
    検索条件で使用するMethodを選択します。
    テーブル同士の結合条件を設定する場合は「REFERENCE 参照」を設定します。
    Methodの選択内容によりシステム項目や定数なども条件として設定可能です。
  • 参考項目/定数
    テーブル同士の結合条件を設定する場合は、結合するテーブルの項目名を設定します。
    Methodの選択内容によりシステム項目や定数なども条件として設定可能です。
  • 開始 Table
    テーブル同士の結合条件を設定する場合は、結合するテーブルIDを設定します。
  • Option
    「=」「≠」「≧」「≦」などの結合条件の符号を設定します。指定しないデフォルトの状態では「=」となります。
    ※以下の画面の例ではEKKO-EBELN=EKPO-EBELNの結合条件とするのでデフォルト(つまり「=」)としています。

上記の設定ができたらいったん保存してみましょう!

T-CODE:SE16Hの外部結合定義の設定手順(二次テーブルのアクセス定義・結合条件定義)

これで保存が完了しテーブル結合した検索結果を表示することができます。


博士

さっそく保存した外部結合定義を用いて検索してみるのじゃ!!!

外部結合定義を用いてテーブル検索する方法は、T-CODE:SE16HにてテーブルIDと外部結合定義IDを入力し検索実行すればOK。
検索結果に外部結合定義で出力設定した項目が表示されていることが分かります。

T-CODE:SE16Hの外部結合定義の設定を用いたテーブル検索

補足

二次テーブルには複数のテーブルを設定することも可能です。

以下は先ほどの外部結合定義に、さらに入出庫伝票の明細テーブル:MSEGを結合した例となります。
このように「二次テーブルのアクセス定義」では、定数を条件に指定することも可能です。

T-CODE:SE16Hの外部結合定義の設定手順(複数テーブル結合時に定数指定)

さらに入出庫伝票のヘッダテーブル:MKPFを結合したのが以下の例です。
このように「二次テーブルのアクセス定義」では、システム項目(SY-XXXX)を条件に指定することも可能です。※ここではSY-UNAME(ログインユーザ)での絞り込みを行っています。

T-CODE:SE16Hの外部結合定義の設定手順(複数テーブル結合時にシステム項目指定)

システム項目については以下で解説しています!

さいごに

T-CODE:SE16Hでは、これまでの検索ではできなかった集計や条件指定、そしてテーブル結合を用いた検索ができるようになりました。
SAPの導入や保守や開発でも活躍する機能なので、使いこなせるようになるためぜひ積極的に使っていきましょう!

その他のSAPの便利な小ワザは以下にまとめているので確認してみて下さいね!

博士

T-CODE:SE16Hの主な機能と使い方の解説は以上じゃ!

★★★SAPラボのライター募集★★★

SAPラボでは、SAPの知識を活かして副業をしたい方を募集してるのじゃ!

SAPラボのライターの特徴 

・ライティング初心者OK!
・報酬高単価!
・業務委託契約なので副業として最適!

SAP記事執筆者としての活動実績として利用可能なので、転職時や案件探しの際に企業へのアピール材料にもなります。

募集要項

・SAP導入や運用保守プロジェクトへの参画経験1年以上

ご応募/お問合せ先

info@sap-labo.com

少しでもご興味ある方、ぜひお気軽にご連絡下さい!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

株式会社Luxy(https://luxy-inc.com/company_info/)と株式会社アガルートITパートナーズ(https://agaroot-itp.com/about/)の代表取締役。

新卒でSAPエンジニアとして働き始める。副業で事業を開始したのち、2015年に独立しシステム開発会社を設立。SAPの案件に従事しつつシステム開発事業を成長させ、2021年に会社をバイアウト。その後も創業会社とグループ会社で代表を兼任。
SAPエンジニア・コンサルタント歴は10年以上。

一緒に「SAPラボ」を盛り上げてくれる副業ライター(SAP経験者)を募集してますので、お問い合わせよりお願いします!

この記事のポイント