AMG Solution

Dynamics 365独自の言語! X++入門講座《SQLの書き方応用編》

feels

みなさまこんにちは。黒木です。
 
前回のブログではX++におけるSQLの書き方を紹介しましたが、今回はSQLの書き方応用編をご紹介します!
 
前回のブログはこちらです。
Dynamics 365独自の言語! X++入門講座《基本的なSQLの書き方》

SELECT文

まずは基本のSELECTからご紹介します。
 
上記のプログラムはtableA.column1にaaaが入っているレコードの件数分ループを回すという処理になります。ループ内では取得したレコードのカラムの値操作などをすることも可能です。
 
この処理は現場でよく使っていました。もちろんorder byなどと組み合わせてつかうことも可能です。組み合わせる場合は、1行目のtableAの後ろに書くのもポイントです。

UPDATE文

上記のコードはcolumn2=’xxx’に当てはまるレコード全てを対象に、column1にaaaで更新をかけるといった処理になります。大量のレコードに更新をかける時は前回紹介したUPDATE文よりこちらの方がパフォーマンスがよくなります。
 
もう一つ、違ったコードの書き方をご紹介します。

こういった書き方もできます。処理で得られる結果は、上記と同じになります。

INSERT文

INSERTについては、メソッドの紹介のみで留めておきます。
 
INSERT処理でも、insert_recordsetなるものが存在します。現場では 前回のブログ でご紹介したinsert();を使うことが圧倒的に多く、insert_recordsetを使う機会はあまりありませんでした。

DELETE文

いままでの傾向を見れば、なんとなくどういう処理になるのかは推測がつくのではないでしょうか。上記ではcolumn1にsssが登録されているレコードのデータを削除する処理を行っています。
 
こちらもupdate_recordsetと同じく、条件に当てはまるレコードのデータを全件削除する時は、こちらの方が良いかと思います。

結合条件

続いて結合条件についてご紹介します。

outer joinはテーブル同士を外部結合するときに使用します。X++ではright outer join は存在せず、left outer join = outer joinとなるのでご注意ください。

このプログラムですと、tableA.columnAとtableB.columnAの値が合致するものを対象外にするという意味合いになります。

まとめ

いかがでしたでしょうか?
 
ここまで分かれば、X++でSQLを書くのには困らない……はずです! 次回はメソッドや構造体についてご紹介しようと思います。
 
それでは、また。
 
 
 
 
《関連記事》

recruit feels

KUROKI'S BLOG

黒木の記事

黒木の記事の最新情報をお届けいたします。

SAME CATEGORY BLOG

この記事と同様のカテゴリー記事

日報で業務改善
はじめました。
LOADING