概要
Yellowfinのビュービルダーでは、データベースから読み取ったデータを使って計算を行う、計算フィールドを作成することができます。これらの計算には、単純な四則演算だけでなく、複雑なSQL文を含めることもできます。
以下のように、様々なタイプの計算フィールドを作成することができます。
タイプ | 説明 |
シンプル計算式 | SQL文を記述することなく、ビュービルダーの画面から計算フィールドを作成することができます。 |
定義済み | テンプレートを使用して計算を作成することができます。ビルダーを使用する必要はなく、必要なフィールドを指定するだけで、計算フィールドを作成することができます。 |
フリーハンドSQL | ビュービルダーを使用するのではなく、SQL文を記述することで、計算フィールドを作成することができます。 |
シンプル
シンプル式ビルダーは、ビューに有効な計算フィールドの作成を支援します。作成された計算フィールドは、レポート内で通常のフィールドと同様に使用することができます。定義されたすべての計算フィールドには、通常のフィールドのように集約を適用することができますが、SQLを使用した計算フィールドだけには、集約を適用することができません。計算フィールドの作成を開始する前に、結果として必要なフィールドのタイプが、どのようなタイプなのかを検討したうえで、メトリック(数値)か、ディメンション(次元)のどちらかから選択してください。
メトリック(数値)
計算を数値として返します。また、小数点以下桁数、接頭辞、接尾辞、デフォルト集約のような、標準的なメトリック(数値)書式オプションを使用することができます。
ディメンション(次元)
計算に、ドリルダウン階層を含む、すべての標準的なディメンション(次元)の書式や、機能を使用することができます。
計算の作成
Section |
---|
Column |
---|
| 1.「作成」ボタンをクリックして、「計算フィールド」オプションを選択します。 |
Column |
---|
| Image Removed |
|
Section |
---|
Column |
---|
| 2. レポートビルダーに表示される、「計算フィールド名」を入力します。 |
Column |
---|
| Image Removed |
|
Section |
---|
Column |
---|
| 3. 作成した計算フィールドを配置する、「フィールドカテゴリー」を選択します。 |
Column |
---|
| Image Removed |
|
Section |
---|
Column |
---|
| 4.「式のタイプ」で「シンプル」を選択します。 |
Column |
---|
| Image Removed |
|
Section |
---|
Column |
---|
| 5. ウィンドウ下部にあるボタンを使用して、計算式を定義します。例: - 「フィールドを選択」ドロップダウンリストで、「Invoiced Amount」フィールドを検索し、クリックをして、追加します。
- 「マイナス(-)」ボタンをクリックします。
- 「Cost of Camp」フィールドを検索し、計算式に追加します。
- ウィンドウ内に、「Invoiced Amount - Cost of Camp」という計算式が表示されます。
|
Column |
---|
| Image Removed |
|
Section |
---|
Column |
---|
| 6.「テスト」ボタンをクリックして、作成した計算式の有効性を確認します。 |
Column |
---|
| Image Removed |
|
Section |
---|
Column |
---|
| 計算式が有効である旨のメッセージが表示されます。設定に問題があれば、関連するエラーメッセージが表示されます。 |
Column |
---|
| Image Removed |
|
Section |
---|
Column |
---|
| 7.「保存」ボタンをクリックして、計算式を保存します。 |
Column |
---|
| Image Removed |
|
Case文
Case文を使用することで、より複雑な計算を作成することができます。Case文は、ビジネスロジックに基づくカラム(列)に、新しい値を設定することができます。例えば、年齢が20歳未満の場合に、「Young」と表示することができます。
Case文の構造
Case文にあまり馴染みのない方は、以下の基本的な構造を参考にしてください。
Code Block |
---|
|
CASE
WHEN this is true THEN return this
WHEN this is true THEN return this
WHEN this is true THEN return this
...
ELSE return this
END
|
大文字で表示された箇所が、Case文の要素です。
要素 | 説明 |
CASE | 計算は、常にCASE要素から始まります。計算を作成する前に、必ずこの要素を追加してください。他の要素は、CASEを追加するまで使用することができません。 |
WHEN | CASE文内では、必要なだけWHEN要素を何回でも使用することができますが、常にELSE要素の前に配置しなくてはいけません。WHENは、条件を定義するために使用します。例えば、 WHEN AthleteAge < 21
これは、 AthleteAgeの値が、21未満の行すべてを特定します。WHEN要素は、常にTHENとともに使用することで、条件に適合した時に、何を返せばよいのかを設定することができます。
|
THEN | これは、WHEN要素とともに使用し、条件に適合した場合、何を返せばよいのかを示します。例えば、 WHEN AthelteAge < 21 THEN 'Young'
これはつまり、AthleteAgeフィールドが21未満の場合は、「Young」と表示することを意味します。 |
ELSE | これは、いずれのWHEN条件に適合するものが何もない場合に、何を返せばよいのかを設定することができるオプション的な要素です。これは基本的に、追加のTHENコンポーネントのように作用します。 |
END | 計算は、常にEND要素で終了する必要があります。これにより、Yellowfinに計算の終了を伝えることができます。ENDが無い場合は、計算が有効になりませんので、必ず追加してください。 |
Case文の作成
Section |
---|
Column |
---|
| 1. Case文を作成するためには、シンプル計算式ビルダー(上述)で「Case」ボタンをクリックします。 |
Column |
---|
| Image Removed |
|
...
2. 「When」ボタンをクリックすると、ポップアップが開くので、Whenの条件とThenの指示を作成します。
...
Column |
---|
|
Image Removed |
Section |
---|
Column |
---|
| 3. 「保存」をクリックして、条件や指示の設定を完了します。 4. 必要な条件すべてを追加するまで、Whenの条件作成を続けます。 |
Column |
---|
| Image Removed |
|
Section |
---|
Column |
---|
| 5. 必要に応じて、Else条件を追加してください。これは必須ではありませんが、追加することを推奨します。 |
Column |
---|
| Image Removed |
|
Section |
---|
Column |
---|
| Image Removed |
|
Section |
---|
Column |
---|
| 7. 作成した計算式を「テスト」し、これを「保存」します。 |
Column |
---|
| Image Removed |
|
定義済み
カスタム関数は、XML形式で記述され、Yellowfinサーバーに格納されている関数です。これらの関数は通常、式ビルダーでは作成することが難しい、高度なSQL文で構成されており、システム管理者により設定されます。
- 「機能」から使用したい式テンプレートを選択し、「結果のフィールドタイプ」を指定します。
- XMLファイルで定義される関数は、いくつかのパラメーター(または、引数)入力が必要です。パラメーターは、そのデータタイプに合致するカラム(列)一覧から選択することができます。
- 各引数をクリックして、値を設定します。設定する値は定数、またはフィールドを参照することができます。
- すべての引数に値を設定したら、「保存」ボタンをクリックして、保存します。
新規カスタム関数作成
カスタム関数は、独自のインスタンス内で設定することができます。新しいカスタムXML関数をアプリケーションに追加する場合は、システム管理者に連絡をするか、カスタム関数から、より詳細な情報を確認してください。
フリーハンドSQL
SQLに関するスキルがあれば、SQL入力欄へ直接SQL文を記述することができます。その場合は、「式のタイプ」で「フリーハンドSQL」を選択すると、SQL入力欄が表示されます。作成したいフィールドに応じた、SQL文を記述してください。
- ここで記述することができるのは、「SELECT命令文」のみであり、SELECTキーワードやFROM句、WHERE句を含めることはできません。
- 参照するカラム(列)は、すべてビュー内に存在している必要があり、集約関数(平均、最大、最小、合計、個数)を使用することはできません。
...