FC2ブログ

おジさん学習帳

LibreOffice などOffice ソフトなどについてのブログです
おジさん学習帳 TOP  >  LibreOffice >  めも

めも

今回は 単なる私個人の メモです


SELECT "名簿"."フリガナ", "名簿"."ID", "名簿"."姓", "名簿"."名", "名簿"."会員種別", "名簿"."郵便番号", "名簿"."住所1", "名簿"."住所2", "名簿"."電話番号", "名簿"."性別" FROM "名簿" WHERE ( ( ( "名簿"."フリガナ" )IN ( SELECT "フリガナ" FROM "名簿" AS "Tmp" GROUP BY "フリガナ" HAVING COUNT( * ) > 1 ) ) ) ORDER BY "名簿"."フリガナ"
データの読み取り SELECT
SELECT 文は SQL の主役

SELECT フィールド名(列名) FROM テーブル名 条件

SELECT * FROM "名簿" の意味は
「*」(アスタリスク)は ワイルドカードで フィールド名(列名)にすると
テーブル内のすべての列を検索する


[名簿]テーブルの
「フリガナ」・「ID」・「姓」・「名」・「会員種別」・「郵便番号」・「住所1」・「住所2」・「電話番号」・「性別」
フィールドを表示
条件は (WHERE)
「名簿」テーブルの「フリガナ」フィールド
「フリガナ」が 2以上(>1)


IN ( SELECT "フリガナ" FROM "名簿" AS "Tmp" GROUP BY "フリガナ" HAVING COUNT( * ) > 1 ) ) ) ORDER BY "名簿"."フリガナ"
WHERE に関わる IN の使い方

SELECT "フィールド名"
FROM "テーブル名"
WHERE "フィールド名" IN ('値一', '値二', ...)
括弧の中に一つ又は複数の値があり その数値相互の間にコンマで分けます
値は 数値や文字でもよい
もし、括弧の中に値が一つだけある場合、次のようになります
WHERE "フィールド名" = '値一'

GROUP BY
グループ化とは、SELECT 文 で 抽出したデータを 指定したキーワードで 分類する

As Tmp GROUP BY は ひとつのセット?

グループ化したデータをHAVING句で絞り込む
HAVING COUNT( * ) > 1 
HAVING句を利用すると、GROUP BY句によってグループ化されたデータに対し
検索条件を指定し絞り込むことが可能です
絞り込みといえば「WHERE」句も絞り込みを行いますが
WHERE句はグループ化されたデータに対して絞り込みを行うことはできません
WHERE句とGROUP BY句を併用した場合
WHERE → GROUP BYの順でクエリが評価されるため
グループ化された結果をWHERE句の段階で利用できないのです
HAVING句とGROUP BY句を利用した場合
GROUP BY → HAVINGの順でクエリが評価され
グループ化された結果に対し条件を指定することが 可能です


WHERE句やORDER BY句とともにGROUP BY句を使用する

WHERE句やORDER BY句とともにGROUP BY句を使用することもできます
この場合
WHERE → GROUP BY → ORDER BY の順に 記述する必要があります

レコードの並び替え (ORDER BY)


SQL は 難しくて 真剣に じっくりやらないと駄目みたい
スポンサーサイト



[ 2011年07月24日 12:10 ] カテゴリ:LibreOffice | TB(0) | CM(0)
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL

カウンター
検索フォーム
ブロとも申請フォーム
QRコード
QR