1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Dr.SumのSQLクエリとビュー

Posted at

はじめに

Dr.SumのデータベースではSQL文を使用してデータを抽出・集計したり、登録・更新・削除などを行うこともできます。
また、Dr.SumにはDr.Sumビューというものがあり、SQLのViewのようにDr.Sumテーブル同士を結合したりWhere条件を付けてデータをselectし表示することが可能で、Dr.SumレポートやMotionBoardのボードでDr.Sumビューを参照することも可能です。
ここでは、Dr.SumビューやEnterprise ManagerからSQL文を使ってDr.Sumのデータを抽出する際に個人的に気を付けていることなどを備忘録として残します。

補足
本記事の内容・キャプチャ等はDr.Sum Ver.5.6のものです。
設定方法など詳細は公式Dr.Sum Ver.5.6 マニュアルを参照してください。

Enterprise Manager SQL ExcecutorでSQL文を実行する

Dr.Sum Enterprise Managerを起動して、「SQL」ボタンをクリックします。
image.png

SQL Excecutorが開くので、直接SQL文を入力し、SQL実行ボタンをクリックすると入力したSQL文が実行されます。
image.png

詳しい使い方は「マニュアル>SQL ExecutorによるSQL文の実行」を参照ください。

Dr.SumのSQLコマンドと関数について

Dr.Sumで使用できるSQLコマンドと関数はそれぞれマニュアルを参照してください。
DML、DDLの基本的な処理や関数は対応しています。

マニュアル>SQLコマンド
マニュアル>関数

Dr.Sumビューを作成する

冒頭でもお話しした通り、Enterprise ManagerでDr.Sum上にビューを作ることが可能です。
エディタを使ってビューを作成する方法は「マニュアル>ビューを新規作成する
」を参照してください。
また、SQLのCREATE文でビューを作成することもできますが、その場合はエディタでの編集はできません。
image.png

Dr.Sumビューの使いどころ

個人的に関わっている案件では、Dr.Sumへのデータ連携元としてDWH(SQL Serverなどが多い)がある構成になっているケースがほとんどですので、DWH側でVIEWを作成してそのselect結果だけをDr.SumのDBに取り込むことが多いです。その理由は、
・ レポートやボードからデータソースとしてDr.Sumビューを呼び出すよりもDr.Sumテーブルを呼び出すほうが集計や表示速度などのパフォーマンスが出る
・ DWH側でビューが作れれば、Dr.Sumのビューの作り方が分からない人でもビューを修正してDr.Sumに連携するデータを修正できる
といった点です。

逆にDr.Sumビューを使っているケースとしては、
・ データ転送量が多く(2000万件超)、何回かに分けてデータ転送する場合に、転送結果を結合して一つのデータソースとして扱いたい場合
・ レポート上で表示するデータをログインユーザー毎に絞り込み表示したい場合
などがあります。

Dr.SumのSQLクエリとビューの紹介は以上となります。
機能を使いこなせばDr.Sumでもかなりのことができますが、作り込みすぎると作った本人が居なくなった場合などにブラックボックスになる可能性はあるので、プロジェクト内で仕様はなるべく共通化することをお勧めします。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?