FC2ブログ

おジさん学習帳

LibreOffice などOffice ソフトなどについてのブログです
おジさん学習帳 TOP  >  LibreOffice >  一致(重複)クエリー?   LibreOffice Base

一致(重複)クエリー?   LibreOffice Base

今やっているので わからないクエリーが

一致・不一致クエリー



説明によると
「重複クエリー」というそうです
たとえば 名簿テーブルなどで 違うIDに 同じ人を登録した場合など
重複しているデータを抽出する
たとえば このような名簿があったとする


4件のレコードが 重複している
説明が書いてあるものによると 「フリガナ」の「フィールド」が見つけやすい
そのまま 説明通り
「フリガナ」フィールドを グループ化して 集計する
そうすると 重複するレコードがあると 数は「2」以上になるそうです
ここまでは 理屈でも理解できる
そこでやってみた

名簿.odb  を 開く
テーブルは 「名簿」だけです


[データベース]ペインで 「クエリー」選択
[タスク]ペインで 「デザイン表示でクエリーを作成」を クリック


Query Design と [テーブルまたはクエリーの追加]が 開く 


[テーブルまたはクエリーの追加]で [追加]クリック [閉じる]クリック
Query Design だけになる 


「名簿」テーブルの「フリガナ」をダブルクリック
下のフィールドに 「フリガナ」が入る
もう一度 「フリガナ」をダブルクリック
先ほどの隣に 「フリガナ」が 入る


1列目の「フリガナ」の[関数]欄を クリック


▼ を クリック
[ GROUP ] を 選択

2列目の「フリガナ」の[関数]欄を クリック
▼ を クリック
[ COUNT ] を 選択

2列目の「フリガナ」の「条件」欄に 「>=2」と入力する


2列目の「フリガナ」の「表示」欄の チェックを外す
「重複条件」と 名前を付けて保存し Query Design を閉じる
※ 参考手引きの通り 「重複条件」で保存


元の画面で [クエリー]ペインにできた「重複条件」を ダブルクリック

 
表示されるのが 重複している「フリガナ」


ここまでは 順調だったのですが
その後 「重複条件」を基にして 「名簿」テーブルと比較し
この条件が 真となる結果を抽出するクエリー「重複クエリー」を作成
ここからが全く分かりません
SQL の IN 演算子を用いると

IN(SELECT*FROM[重複条件])

IN 演算子は かっこの中の式を評価し 条件が一致すれば真を返す
とあるのですが...
手引書通りにやった場合


名前を「重複クエリー」で 保存した
出来た「重複クエリー」を ダブルクリックした



何も抽出できない ?????



そこで 最初の時点で フリガナが 表示されているのだから
一緒に 「ID」「姓」「名」「住所1」などを 表示できるのでは?

まずは 失敗した「重複クエリー」を 削除する
右クリックし メニューで [削除]選択


確認

[重複条件]を 右クリック メニューで[編集]クリック


Query Design が表示されたら
[名簿]テーブルの 「ID」「姓」「名」「住所1」「住所2」を 順番に ダブルクリックする




これで 保存して開いたら


データ内容が読み込めませんでした
Not in aggregate function or group by clause:org.hsqidb.Ezpression@1d2b8e
in statement[SELECT"フリガナ","ID","姓","名","住所1","住所2"FROM"名簿"
GROUP BY"フリガナ"HAVING((COUNT("フリガナ")>=2))]
と表示されてしまった
よく わからないし 翻訳する気もない

そこで 気が付いた グループ化したら出るのか?
やってみた


これで 上書き保存して 開いてみた
さっきと全く同じでした


もしかしたら 「ID」を 無くしたら
「ID」を右クリック [削除]クリック


これで 保存
開く
一応 表示した でもなんかすっきりしない



同じように 重複を調べるのを Access 2010 で行うと



誰か 詳しい方いらっしゃいましたら 教えて下さい
参考 : 名簿_2.odb 



LibreOffice Base について

 ※ Base を 使う場合は 安定版 の方が良い
    最新版は 不具合が出る可能性がある


過去の Base の記事一覧

Base について  1 LibreOffice Base
Base について  2 LibreOffice Base
Base について  3 LibreOffice Base
Base  テーブル 1 LibreOffice Base
Base  テーブル 2 LibreOffice Base
Base  テーブル 3 LibreOffice Base
Base  テーブル 4 LibreOffice Base
Base  テーブル 5 LibreOffice Base
Base  テーブル 6 LibreOffice Base
Base  テーブル 7 LibreOffice Base
Base  テーブル 8 LibreOffice Base
Base  テーブル 8-2 LibreOffice Base
リレーションシップの設定 1 LibreOffice Base
リレーションシップの設定 2 LibreOffice Base
クエリー( query ) 1  LibreOffice Base
クエリー( query ) 2  LibreOffice Base
クエリー( query ) 3  LibreOffice Base
フォーム  1  LibreOffice Base
フォーム  2  LibreOffice Base
フォーム  3  LibreOffice Base
フォーム  4  LibreOffice Base
フォーム  5  LibreOffice Base
フォーム  5-2  LibreOffice Base
フォーム  6 失敗の巻 LibreOffice Base
フォーム  6  LibreOffice Base
フォーム  6-2  LibreOffice Base
フォーム  6 について質問が?  LibreOffice Base
フォーム  7 LibreOffice Base
フォーム  8 LibreOffice Base
参照整合性の設定 LibreOffice
レポート  1  LibreOffice Base
レポート  2  LibreOffice Base
抽出などを行うクエリー   LibreOffice Base
一致(重複)クエリー?   LibreOffice Base  SQL 表示 使用
一致(重複)クエリー?  つづき  LibreOffice Base
めも SQL?
レポート  3   LibreOffice Base
Access のデータベースを LibreOffice Base で 開く
ピポットテーブル ?  LibreOffice Base
売上集計 クエリー  LibreOffice Base
期間を指定し データを 抽出する  LibreOffice Base
日付別 データを 抽出する  LibreOffice Base



SQL で 入力するようです
[データベース]ペインで 「クエリー」
[タスク」ペインで 「 SQL 表示でクエリーを作成 」をクリック

SQL 表示では
SELECT "名簿"."フリガナ", "名簿"."ID", "名簿"."姓", "名簿"."名", "名簿"."会員種別", "名簿"."郵便番号", "名簿"."住所1", "名簿"."住所2", "名簿"."電話番号", "名簿"."性別" FROM "名簿" WHERE ( ( ( "名簿"."フリガナ" ) IN ( SELECT "フリガナ" FROM "名簿" AS "Tmp" GROUP BY "フリガナ" HAVING COUNT( * ) > 1 ) ) ) ORDER BY "名簿"."フリガナ"

表示される状態

Query Design で 見た場合
フィールドで ( [名簿].[フリガナ] ) というものが出来ている
条件欄では
IN ( SELECT [フリガナ] FROM [名簿] AS [Tmp] GROUP BY [フリガナ] HAVING COUNT( * ) > 1 )



不一致 (重複していないものだけを表示)クエリーの場合は
SQL 表示で 「 NOT 」が 「 IN 」の前についただけ

SELECT "名簿"."フリガナ", "名簿"."ID", "名簿"."姓", "名簿"."名", "名簿"."会員種別", "名簿"."郵便番号", "名簿"."住所1", "名簿"."住所2", "名簿"."電話番号", "名簿"."性別" FROM "名簿" WHERE ( ( ( "名簿"."フリガナ" ) NOT IN ( SELECT "フリガナ" FROM "名簿" AS "Tmp" GROUP BY "フリガナ" HAVING COUNT( * ) > 1 ) ) ) ORDER BY "名簿"."フリガナ"





完成 名簿_3.odb 
スポンサーサイト



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












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

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