• 検索結果がありません。

6.3 クエリの作成

6.4.2 SQL 言語

最もよく使用され、しかも最も強力なデータベース形式のアプリケーションは、SQL(Structured Query Language) に基づく DBMS アプリケーションです。SQL データベースは、通常、クライアント/サーバネットワークアーキテ クチャで動作します。データベースファイル、テーブル、フィールド、およびレコードは、SQL サーバで作成、保 存、また操作されます。また、ワークステーションユーザは、SQL クライアントのインタフェースを使用して、デー タベースファイルを設計および操作するだけでなく、日常業務の役に立つ重要なデータも取得できます。

6.4.2.2 DISTINCT

DISTINCT 句は、重複しない一意なデータセットだけを取得するように要求します。DISTINCT 句を使用する と、同じ内容のレコード(行)は、一度しか取得されません。DISTINCT 句を使って前の SELECT 文を変更する と、次のようになります。

SELECT DISTINCT TABLEA.'CUSTNAME', TABLEA.'STATE'

6.4.2.3 FROM

FROM 句は、SELECT 句で指示されるデータベースフィールドのソースを指定します。FROM には、必要な データを含むフィールドとそのレコードを持つデータベーステーブルを指定します。Crystal Reports が生成す る FROM 句では、テーブル名の前にエイリアスが付き、レポートの中のテーブルを識別しています。次の例で は、SELECT 句と共に FROM 句を使用しています。

SELECT

TABLEA.'CUSTNAME', TABLEA.'STATE' FROM

'TABLEA' TABLEA

6.4.2.4 WHERE

WHERE 句には、2 つの目的があります。

• レコードの選択基準を指定します。

• 2 つのデータベーステーブルの結合方法を指定します。

レコードの選択基準を指定するために WHERE が使用される場合は、どのレコード(データ行)を取得するかを 決定する検索条件が WHERE に含まれます。以下はその例です。

SELECT

MYTABLE.'SALESPERSON', MYTABLE.'SALESTOTAL' FROM

'MYTABLE' MYTABLE WHERE

MYTABLE.'SALESTOTAL' < 10000.00

次の例では、WHERE 句で 2 つのテーブルを結合しています。

SELECT

CUSTOMER.'CUST_ID', CUSTOMER.'CUST_NAME', ORDERS.'AMOUNT' FROM

'CUSTOMER' CUSTOMER, 'ORDERS' ORDERS WHERE

CUSTOMER.'CUST_ID' = ORDERS.'CUST_ID'

6.4.2.5 ORDER BY

ORDER BY 句は、取得したデータベースレコードを特定のフィールドの値に基づいて並べ替えることを指定し ます。ORDER BY 句を使用しない場合、レコードは、元のデータベースにある順番に取得されます。ORDER BY 句の後ろに、複数のフィールドが指定された場合、プログラムは、最初に指定されたフィールドの値の順番 でレコードを並べ替えます。その後、最初の並べ替えで順番が同じだったレコードを 2 番目に指定されたフィー ルドの値で並べ替えます。次の SQL 文では、ORDER BY 句を使用しています。

SELECT

MYTABLE.'COMPANY', MYTABLE.'CITY', MYTABLE.'STATE' FROM

'MYTABLE' MYTABLE ORDER BY

MYTABLE.'STATE' ASC, MYTABLE.'CITY' ASC

ASC は、フィールドの値が降順(DESC)ではなく、昇順に並べ替えられることを示しています。昇順では、アル ファベットは A から Z の順に、数値は 0 から 9 の順に並べ替えられます。

6.4.2.6 GROUP BY

GROUP BY 句は、集計データセットを取得します。GROUP BY は、データ自体を取得する代わりに、データを グループ化し、SQL の集計関数を使って各グループを集計します。サーバは、Crystal Reportsに各グループ の集計情報だけを返します。

以下はその例です。

SELECT

MYTABLE.'STATE', MYTABLE.'ZIPCODE', SUM (MYTABLE.'SALES') FROM

'MYTABLE' MYTABLE GROUP BY

MYTABLE.'STATE', MYTABLE.'ZIPCODE'

ドキュメント内 SAP Crystal Reports for Enterprise ユーザガイド (ページ 137-140)