Translate

2019年7月13日土曜日

サンプルデータベースのダウンロード


サンプルデータをダウンロードしてみましょう。

マイクロソフトからダウンロードできるサンプルは英語です。日本語のサンプルデータは、マイクロソフトのサイトでダウウンロードできる「SQL Server XXXX自習室」を執筆されている「SQLQuality」のサイトからダウンロードできます。

ダウンロード方法は様々なので自分にとって簡単な方法でやればいいと思います。
ただし、NorthwindとPubsはかなり古いサンプルなので、SQLサーバー2017でSQLスクリプトを走らせると、 いくつかのストアドプロシージャの実行が失敗します。(データベースはちゃんと作成されるので安心してください。)

・ AdvenrueWork (英語)
・Northwind 2000 (英語)
・ Pubs 2000 (英語)
・ NorthwindJ (日本語)




Northwind および Pubs


NorhtWindとPubsの場合は、ダウンロードファイルをスクリプトに変換し、そのスクリプトをSQLで実行してデータベースを作成する方法です。

1. マイクロソフト社のダウンロードサイト にアクセスして「ダウンロード」ボタンをクリックして、「SQL2000SampleDb.msi]ファイルをダウンロードします。




2. そのファイルをダブルクリックすると、自動でスクリプトセットアップウィザードが起動するので、すべて「Nex」とボタンをクリックして完了まで進むと、 Cドライブ以下に「SQL Server 2000 Sample Databases」というフォルダが作成されます。


















3. そのフォルダの中に以下のファイルが作成されています。最初に、「Northwind.SQL」 ファイルをSQLサーバーで開きます。 SQLサーバーがすでに起動されていれば、この「Northwind.SQL」ファイルをダブルクリックするだけで、下記4の画面に進みます。















4. SQLサーバーの「実行」ボタンをクリックしてスクリプトを実行します。「Pubs.SQL」も同じようにスクリプトを実行します。


















5. SQLサーバーの「データベース」フォルダを右クリックしてポップアップメニューの「最新の情報に更新」をクリックします。




















6. 「データベース」フォルダに2つのデータベースが作成されました。










AdvenrueWorks


AdvenrueWork 2014の場合は、バックアップファイルをダウンロードして、SQLサーバーに復元することによってデータベースを作成する方法です。

マイクロソフト社のこちらのサイトにアクセスします。 (Googleではアクセスできないときは、IEで試してください。)

1. 今回は、「AdventureWorks2014.bak」をダウンロードして任意のバックアップフォルダに保存します。



2. SQLサーバーの「データベース」フォルダを右クリックして、ポップアップメニューで「データベースの復元(R)」をクリックします。


















3. 「データベースの復元」ダイアログボックスの「ソース」で「デバイス(E)」にチェックを入れ、右側の「...」ボタンをクリックします。








4. 表示された画面の「追加」ボタンをクリックします。

















5. バックアップフォルダの「AdvenrueWork2014.bak」を選択して「OK」ボタンをクリックします。

















6. バックアップファイルのフォルダーパスが入力されていることを確認して、「OK]ボタンをクリックします。

















7. 「データベースの復元」ダイアログボックスの内容を確認して、「OK」ボタンをクリックします。



















8. 復元に成功したというメッセージが表示されれば完了です。












9. SQLサーバーに「Adventureworks2014」のデータベースが作成されました。









NorthwindJ


1. SQLQuality のサイトにアクセスして、「サンプルスクリプト」をクリックします。



2. ダウンロードされた「SQL11_SelfLearning12_InMemory.exe」ファイルの右側にある「∧」ボタンをクリックして「開く」を選択すると、 実行ファイルが起動されて一瞬で終わります。












3. 「ダウンロード」フォルダに「SQL11_SelfLearning12_InMemory」フォルダが作成されているのでそのファイルを開きます。 「NorthwindJ.sql」ファイルをSQLサーバーで開き、スクリプトを実行すれば「NorthwindJ」のデータベースが作成されます。(上記「Northwind および Pubs」のステップ3以降を参照)

また、SQLQuality のサイトでも詳しい手順が紹介されているのでそちらを参照ください。






2017年3月9日木曜日

レポートのエクスポート


SSRSで作成したレポートは、様々なファイル形式でエクスポートできます。

今回は、エクセルファイル形式でエクスポートしてみます。

レポートテンプレートの作成


テンプレートを作成しておけば、レポートを作成する時間を大幅に短縮できます。

今回は、画像と更新日やページ数などを含めたテンプレートを作成してみます。

変数の設定


更新日時などで「NOW()」関数を使用すると、秒単位で表示した時、1ページ目と2ページ目で表示内容に誤差が生じることがあります。
その誤差を防いで、値を一定に保持するために変数を使用します。

例:セルに直接「=now()」を入力した場合

サブレポートの作成


サブレポートを作成する前に、メインレポートを作成する必要があります。
メインレポートには、「商品区分」データセット、サブレポートには 「商品」データセットを使用します。2つのデータを紐づけるフィールドは「区分コード」です。

グラフの配色変更


グラフの挿入で作成したグラフを使用して、配色を変更します。

グラフの配色を変更するには、[グラフのプロパティ]ダイアログボックスや[プロパティ]ウィンドウを使用します。
この2種類の方法を試してみます。

グラフの挿入


縦棒グラフをレポートに挿入してみます。
今回は、社員データを使用します。

[ツールボックス]の「グラフ」をダブルクリックすると[グラフの種類を選択]ダイアログボックスが表示されるので、任意のグラフを選択して[OK]ボタンを押します。
(または、[ツールボックス]の「グラフ」をデザイン画面にドロップ&ドロップすると[グラフの種類を選択]ダイアログボックスが表示されます)

一覧の追加


一覧を利用して、自由形式のレイアウトでレポートを表示することができます。フィールドを一覧内に自由に配置したり、画像を挿入することができます。

今回は、社員データを使用して、従業員情報を各従業員でグループ化した一覧を作成してみます。

一覧の追加

①[ツールボックス]プロパティから「一覧」を選択して デザイン画面にドロップ&ドロップします。一覧の枠を広げます。 

②[テキストボックス」をデザイン画面の「一覧」枠内にドロップ&ドロップします。3つのテキストボックスを一覧表の中に作成します。

2017年3月8日水曜日

マトリックスの作成


社員データを使用して、各在籍支社の部署ごとの社員数を表示してみます。

[ツールボックス]プロパティから、[マトリックス]を デザイン画面にドラッグ&ドロップします。





[データセットのプロパティ]ダイアログボックスが表示されるので、「社員」データセットを選択します。データセットの名前は 「社員」とします。

[レポートデータ]プロパティの[データセット]フォルダ以下の[社員]データセットから、以下のフィールドをメトリックスのセルにドラッグ&ドロップします。

「氏名」→「データ」
「在籍支社」→「行」
「部署名」→「列」




そのままだと、[マトリックス]に社員名が表示されるので、社員名を数えるCount関数を使用して社員数を表示します。
「氏名」が挿入されている「データ」セルを右クリックして、[式...]をクリックします。
式ビルダーに「=Count(Fields!氏名.Value)」と入力して[OK]ボタンをクリックします。
[マトリックス]に[Count(氏名)]というテキストが挿入されます。


各在籍支社の部署ごとに、社員数が表示されました。



- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・

マトリックスでグループごとに集計

[マトリックス]に支社ごとの合計と部署ごとの合計を追加します。

[Count(氏名)]のセルを右クリックします。 
ショートカットメニューで、 「合計の追加」-「行」の順にクリックして行を追加します。同様に、「合計の追加」-「縦棒」の順にクリックして列も追加します。




[マトリックス]の右下角の空白セルに式ビルダーを使用して「[Count(氏名)]」のテキストを挿入します。




見やすいように適当に色付けして[プレビュー]ビューで確認します。
クロス集計の完成です。




※[マトリックス]の並べ替えは、[Tablixのプロパティ]ダイアログボックスの[並べ替え]プロパティページで設定できます。

- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・- ・

マトリックスに集計軸を追加

各部署に社員情報を追加します。

「社員コード]を[マトリックス]の「在籍支社」の右側に表示します。

[レポートデータ]プロパティの[データセット]フォルダ以下の[社員]データセットから、「社員コード]を[マトリックス]の「在籍支社」行の右側ドラッグ&ドロップします。

※ドロップする時、「在籍支社」の右側罫線にマウスを置くと青い線が表示されるので、その青い線が右を向いている状態の時にドロップします。




各在籍支社に社員コードが追加されました。






別テーブルの値をパラメーターに設定


[商品区分]テーブルの[区分名]をパラメーターに設定し、それに紐づくデータを[商品]テーブルから取得します。



インジケーターの追加


商品テーブルに、インジケーターを追加してみます。
インジケーターは、ダッシュボードなどでよく使用されています。

最初に、テーブル右側に新しい列を追加します。

[ツールボックス]プロパティから[インジケーター]を新しい列にドラッグ&ドロップします。

特定文字の書式設定


社員テーブルを使用して、部署名に「営業」という文字列があれば、その部署名を太字にしてみます。

[部署名]のセルを右クリックし、ショートカットメニューの[テキストボックスのプロパティ...]をクリックします。




[テキストボックスのプロパティ...]ダイアログボックスの[フォント]プロパティページを開きます。
[太字(B)]横の「fx」ボタンをクリックします。




[式の設定(S):Value]に次の式を入力して、[OK]ボタンをクリックします。



➡「部署名」が「営業」で始まる文字列を太字、それ以外は標準


[プレビュー」ビューで、部署名が「営業」で始まっている単語が太字になっていることを確認します。




ちょっとわかりずらいかもしれませんが、ちゃんと太字になっています。

Switch関数で条件設定


勤続年数の計算で作成したテーブルに様々な条件をもとに色分けしてみます。

色分けは次の条件を基本とします。

社員番号100~199:Pink
社員番号200~299:Yellow
社員番号300~399:Khaki
社員番号400~499:LightSteelBlue
それ以外: LiteGreen

条件付き書式の設定


「勤続年数の計算」で作成したテーブルに条件を設定して、色を付けてみます。

「入社日に勤続年数追加」の値が、2017年4月2日以前のデータをオレンジに変更します。
ここでは、社員コード「107」が対象になります。

勤務年数の計算


社員データを使用して、2017年4月2日時点の従業員の勤続年数を算出します。
計算方法は、次の3段階のステップで行います。

1. DateDiff関数で「勤続年数」を算出
  → 入社年と2017年の差分を算出

テーブル列に計算結果を表示


商品テーブルに新しい列を追加して、「単価」*「在庫」=「在庫金額」の計算結果を表示してみます。

まず最初に、新しいフィールドをデータセットに追加します。
[レポートデータ]の[データセット]フォルダ以下にある[商品]を右クリックして[計算フィールドの追加...]をクリックします。


ドロップダウンリストパラメータを追加


得意先データの[都道府県]をパラメーターに設定します。
今回は、パラメーターをドロップダウンリストにしてみます。

新規にパラメーターを作成して、[レポートパラメーターのプロパティ]で以下のように設定します。(パラメーターの追加 方法を参照)

パラメーターの追加


レポートにパラメーターを追加して、データをフィルターしてみます。

得意先データの「得意先名」をパラメーターに設定して、そのパラメーターに紐づくデータを表示します。

テーブルに集計を追加


ヘッダーとフッターの追加で作成したテーブルに、COUNT関数を使用して、都道府県別に得意先件数の集計を追加してみます。

[得意先名]列の一番下のセルを右クリックして、ショートカットメニューの[式]をクリックします。

2017年3月7日火曜日

ヘッダーとフッターを追加


レポートの見栄えをよくしたり、集計結果を表示したりするためにへッダーとフッターは大変役に立ちます。今回は、データの見栄えをよくする目的で使用してみます。

データのグループ化で作成したテーブルにヘッダーとフッターを追加します。