その他のCDSビュー

5. その他のCDSビュー

5. その他のCDSビュー

残りについて、順番に確認していきましょう。

計算処理(演算処理、属性変更)

四則演算は、SELECT句の中で直接演算子を使うだけで計算可能です。

また、割り算では浮動小数点数を使う必要があるため、必要に応じてCAST(型変換)を行います。(右辺、左辺ともに浮動小数点数でなければエラーになります。)

実際に計算処理(演算処理、属性変更)を利用したCDSビューを作成してみましょう。

CDSビューの仕様

演習内容
ビューID ZIYYMMnnn_samp_calc1 (sqlViewName:ZIYYMMnnn_sc_1)
ビュー名 計算処理
要件概要 生徒別テスト得点を計算して表示するビューを作成しなさい。
その他条件
  • 合計点は、国語(japanese)と英語(english)を足して計算すること。
  • 点数差は、国語(japanese)から数学(math)を引いて計算すること。
  • 数学の2倍の得点は、数学(math)の得点を2倍すること。
  • 平均点は、国語(japanese)と英語(english)の平均を小数点以下も含めて計算すること。
出力項目
  • 生徒の情報(学年、組、出席番号、名前、テスト名)
  • 合計点(国語と英語)、点数差(国語と数学)、数学の2倍の得点、平均点(国語と英語)
  • ※平均点はCASTが必要なので注意。
その他 $TMP ローカルオブジェクトで作成

CDSビューのソース

作成したプログラムを実行してみましょう。

(参考)テーブルデータ

生徒別テスト得点情報テーブル(z0120_tbl_003)を確認しましょう。(トランザクションコード : SE11)

生徒別テスト得点情報テーブル(z0120_tbl_003)を確認しましょう。(トランザクションコード : SE16)

計算処理(小数点以下を含む数値処理)

数字の端数処理は、SELECT句の中で直接処理可能です。四捨五入する場合は桁数を指定する必要があります。

実際に計算処理(小数点以下を含む数値処理)を利用したCDSビューを作成してみましょう。

CDSビューの仕様

演習内容
ビューID ZIYYMMnnn_samp_calc2 (sqlViewName:ZIYYMMnnn_sc_2)
ビュー名 計算処理
要件概要 生徒別テスト得点の距離を計算して表示するビューを作成しなさい。
その他条件
  • 距離(distance)の小数点を切り上げて整数で表示すること。
  • 距離(distance)の小数点を切り捨てて整数で表示すること。
  • 距離(distance)の小数点0桁を四捨五入して表示すること。
出力項目
  • 生徒の情報(学年、組、出席番号、名前、テスト名)
  • 上記の通りに数字の端数処理をした距離
その他 $TMP ローカルオブジェクトで作成

CDSビューのソース

作成したプログラムを実行してみましょう。

(参考)テーブルデータ

生徒別テスト得点情報テーブル(z0120_tbl_003)を確認しましょう。(トランザクションコード : SE11)

生徒別テスト得点情報テーブル(z0120_tbl_003)を確認しましょう。(トランザクションコード : SE16)

書式変更(文字列操作)

文字列操作は、SELECT句の中で直接操作可能です。結合、切り出し、文字数の取得、置換について確認しましょう。

実際に書式変更(文字列操作)を利用したCDSビューを作成してみましょう。

CDSビューの仕様

演習内容
ビューID ZIYYMMnnn_samp_format1 (sqlViewName:ZIYYMMnnn_sf_1)
ビュー名 書式変更
要件概要 生徒テーブルを書式変更して表示するビューを作成しなさい。
その他条件
  • フルネームの表示は、姓(last_name)と名(first_name)を結合すること。
  • 誕生日(birthday)の表示は、誕生年・月・日を切り出すこと。
  • 名(first_name)と姓(last_name)の文字数を取得すること。
  • 番地(location)は、「1」を「tokyo」に置換すること。
出力項目
  • 生徒の情報(ID)
  • フルネーム、誕生年・月・日、名・姓の文字数、番地
  • ※上記の通りに書式変更する。
その他 $TMP ローカルオブジェクトで作成

CDSビューのソース

作成したプログラムを実行してみましょう。

(参考)テーブルデータ

生徒テーブル(zstudents)を確認しましょう。(トランザクションコード : SE11)

生徒テーブル(zstudents)を確認しましょう。(トランザクションコード : SE16)

書式変更(通貨書式変更)

通貨書式変更は、SELECT句の中で直接変更可能です。書式変換では通貨コードを使用します。

実際に書式変更(通貨書式変更)を利用したCDSビューを作成してみましょう。

CDSビューの仕様

演習内容
ビューID ZIYYMMnnn_samp_format2 (sqlViewName:ZIYYMMnnn_sf_2)
ビュー名 書式変更
要件概要 支払テーブル(国内)を書式変更して表示するビューを作成しなさい。
その他条件
  • 日本円(JPY)を米ドル(USD)に支払予定日に最も近い為替レートで換算すること。
  • 日本円(JPY)の小数点位置を内部書式から外部書式に変更すること。
出力項目
  • 支払情報(ID、支払者、支払区分、支払予定日、金額、通貨コード)
  • 換算後の金額、外部書式の金額
  • ※上記の通りに書式変更する。
その他 $TMP ローカルオブジェクトで作成

CDSビューのソース

解説

金額(amount)を換算前通貨(source_currency)から換算後通貨(target_currency)にします。
サンプルコードでは、換算後通貨(target_currency) にCAST(型変換)をして通貨コード「USD」を指定しています。

指定した日付(exchange_rate_date)を基準とした換算レートを使って換算します。
通貨毎のレートはテーブル:TCURRに登録されています。
指定された日付に最も近い日付のレートが使用されます。

作成したプログラムを実行してみましょう。

(参考)テーブルデータ

支払テーブル(国内)(zpayment)を確認しましょう。(トランザクションコード : SE11)

支払テーブル(国内)(zpayment)を確認しましょう。(トランザクションコード : SE16)


NEXT>> 7章 アグリゲーションビューの作成

研修の詳細はこちら