前の例では、余白がないために最初のタイトルが表示されませんでした。 第1列の幅を拡大しても、問題は解決しません。 BTEQでは、サマリー テキストの集約値に使用するためにある結果行のスペースには、サマリー タイトルが配置されません。 この制約に対処するためには、専用の結果行スペースをとっておくための空の列を選択します。 次の例は、この方法による結果の前と後を示しています。
例1 – サマリー タイトル(調整前)
現在のデータベースにFruitTreesというテーブルがあるとします。そこから、完熟している樹木の数と、関連する収穫高のレポートを作成するとします。 テーブルでは、以下の列と値が表示されます。
TreeId Fruit Yield Status ---------- ---------- ---------- ---------- CITR01 ORANGE 10 NOT RIPE CITR02 ORANGE 30 NOT RIPE CITR03 ORANGE 500 RIPE POME01 APPLE 100 NOT RIPE POME02 APPLE 80 NOT RIPE POME03 APPLE 400 RIPE POME04 APPLE 20 RIPE
スクリプトには、以下のBTEQコマンドとSQL文が含まれており、空白の列の選択は指定されていません。
.SET SUPPRESS ON 1
SELECT Status
, Fruit
, Yield
, TreeId
FROM FruitTrees
GROUP BY Status, Fruit, Yield, TreeId
ORDER BY Status, Fruit, Yield
WITH COUNT(Fruit) (TITLE 'Trees' )
, SUM (Yield) (TITLE 'Yield' ) BY Status, Fruit
WITH COUNT(Status) (TITLE 'Tot Trees')
, SUM (Yield) (TITLE 'Tot Yield') BY Status
;
BTEQの応答
Status Fruit Yield TreeId
----------- ----------- ----------- ----------
NOT RIPE APPLE 80 POME02
APPLE 100 POME01
----------- -----------
Trees 2 180
ORANGE 10 CITR01
ORANGE 30 CITR02
----------- -----------
Trees 2 40
----------- -----------
4 Tot Yield 220
RIPE APPLE 20 POME04
APPLE 400 POME03
----------- -----------
Trees 2 420
ORANGE 500 CITR03
----------- -----------
Trees 1 500
----------- -----------
3 Tot Yield 920
例2 – サマリー タイトル(調整後)
前の例では、4つのサマリー テキスト タイトルのうち2つ分のスペースしか取得できませんでした。 以下に示すように、タイトル分の結果スペースを確保する空白の列を選択するようにスクリプトが変更されると、タイトルを含めることが可能になります。 空白の列の指定幅が重要です。 列幅が小さすぎる場合は、タイトルが切り捨てられます。
.SET SUPPRESS ON 1,2
SELECT ' ' (CHAR(9)) (TITLE ''), Status
, ' ' (CHAR(5)) (TITLE ''), Fruit
, ' ' (CHAR(5)) (TITLE ''), Yield
, TreeId
FROM FruitTrees
GROUP BY Status, Fruit, Yield, TreeId
ORDER BY Status, Fruit, Yield
WITH COUNT(Fruit) (TITLE 'Trees' )
, SUM (Yield) (TITLE 'Yield' ) BY Status, Fruit
WITH COUNT(Status) (TITLE 'Tot Trees')
, SUM (Yield) (TITLE 'Tot Yield') BY Status
;
BTEQの応答
Status Fruit Yield TreeId
----------- ----------- ----------- ----------
NOT RIPE APPLE 80 POME02
APPLE 100 POME01
----------- -----------
Trees 2 Yield 180
ORANGE 10 CITR01
ORANGE 30 CITR02
----------- -----------
Trees 2 Yield 40
----------- -----------
Tot Trees 4 Tot Yield 220
RIPE APPLE 20 POME04
APPLE 400 POME03
----------- -----------
Trees 2 Yield 420
ORANGE 500 CITR03
----------- -----------
Trees 1 Yield 500
----------- -----------
Tot Trees 3 Tot Yield 920