
ACCESS の初心者です。
同姓同名の社員のデータの重複チェックをしたいと思って以下のようなSELECT分を作りました。
<元データ>
社員CD 社員名 カウント
1 ああああ
2 ああああ
3 いいいい
<クエリで「カウント」列に入れるSELECT文>
(select count(*) from 社員マスター Where 社員名 = 社員名 )
これを実行すると
<クエリ実行後データ>
社員CD 社員名 カウント
1 ああああ 3
2 ああああ 3
3 いいいい 3
となってしまいます
そこで「社員マスタ」テーブルをコピーし(項目名はすべて「2」を付加する)
(select count(*) from 社員マスター2 Where 社員名 = 社員名2 )
としたら、期待していたとおり
<修正クエリ実行後データ>
社員CD 社員名 カウント
1 ああああ 2
2 ああああ 2
3 いいいい 1
となりました。
実際の社員は1万名もいて同姓同名もかなりあり、できればテーブルのコピーを作成せずに、同一テーブル内で上記のことをしたいのですが、そうはいかないものでしょうか?
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
SELECT S1.社員CD,S1.社員名,COUNT(S2.社員CD) FROM 社員マスター S1
INNER JOIN 社員マスター S2 ON S1.氏名=S2.氏名
GROUP BY S1.社員CD,S1.社員名
で、どうでしょうか?
qbr2さん
ありがとうございます。
「氏名」は「社員名」のことですよね。
それで、選択クエリを以下の通りに入れました。
式: (SELECT S1.社員CD,S1.社員名,COUNT(S2.社員CD) FROM 社員マスター S1
INNER JOIN 社員マスター S2 ON S1.社員名=S2.社員名 GROUP BY S1.社員CD,S1.社員名)
(申し遅れましたがACCESS2002です)
実行すると、
「メイン クエリの FROM 句の予約語 EXISTS を使用しないフィールドを複数返すサブクエリを作成しました。
サブクエリの SELECT ステートメントを変更し、1 つのフィールドだけを指定してください。」
というエラーが出ます。
サブクエリでは1つのフィールドしか指定していないので、メインクエリの方を1つのフィールドだけにして
式: (SELECT COUNT(S2.社員CD) FROM 社員マスター S1
INNER JOIN 社員マスター S2 ON S1.社員名=S2.社員名 GROUP BY S1.社員CD,S1.社員名)
として実行してみると今度は
「パラメーターの入力」として「S2.社員CD」の入力を要求してきます。OKで飛ばすと次には「S1.社員CD」
を聞いてきます。これもOKで進めると、「このサブクエリでは1つのレコードしか返せません」
となってしまいます。
その後いろいろ試してみたのですが「構文エラー」になって実行すらできません。
やはり無理なのでしょうか?
よろしくお願いします。
No.2
- 回答日時:
SELECT 社員マスター.社員ID, 社員マスター.社員名, T1.カウント
FROM 社員マスター INNER JOIN
(SELECT 社員名, Count(*) AS カウント FROM 社員マスター GROUP BY 社員名) AS T1
ON 社員マスター.社員名 = T1.社員名;
としてみては。
30246kikuさん
ありがとうございます。
早速以下のとおりやってみたのですが
カウント:(select 社員名,count(*) as カウント from 社員マスター group by 社員名 ) as T1 on 社員マスター.社員名 = T1.社員名;)
「指定した式の構文が不正です」
「たとえば演算子がない時にオペランドを指定しています」
となります。
申し訳ないのですがACCESSでのSQLもよく解っていません。
ホストコンピュータ系では多少使っていたのですが・・・
No.1
- 回答日時:
たんなる重複チェックなら「重複クエリ ウィザード」を使われたらどうでしょう。
(2007)q09さん
いつもありがとうございます。
要件としてはやはり単なる重複チェックを超えたものと思います。
「重複クエリウィザード」を使っても質問に書いたと同様に重複データを抽出できることはわかったのですが、
この抽出結果から、元のテーブルに「要注意マーク」をつけて、「ダブり入力ではないか?本当に同姓同名の人ができたのか?」
を再度チェックしてもらうということになります。
これを1つのファイルでやること自体がやはり無理な考え方なのでしょうか?
だんだんそんな気がしてきました。
別ファイルを作ってそれと重複チェックをする。
同姓同名の発生となればレコードを挿入し、直ちにそのレコードを別ファイルにも挿入して次のチェックに備える。
ということになるんでしょうか?
それを一発でやれたらとおもったのですが・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
消費税
-
派遣先での疎外感。
-
巨乳の同僚
-
出世とかしたくないって人は中...
-
職場の飲み会で、ある社員だけ...
-
職場で空気のような存在になっ...
-
自分にだけタメ口対応をされま...
-
カラオケに二人で行こうと誘わ...
-
社員全員が閲覧できる共有スケ...
-
職場で余り者扱いを受けていて...
-
職場でお尻を全開にしてしまい...
-
会社の人に勝手にLINE追加され...
-
平然とバイトに手を出す社員さ...
-
派遣社員に直接注意
-
40代のおじさんで平社員だとカ...
-
妻ですが男性と2人だけの出張が...
-
ニコニコしてる人の裏の顔につ...
-
月1くらいで休む派遣さんが、休...
-
ピボットテーブルで平均時間を...
-
バイト先で口論で頭に血が上っ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
派遣先での疎外感。
-
職場の飲み会で、ある社員だけ...
-
窓際社員に話しかけられて業務...
-
巨乳の同僚
-
職場で空気のような存在になっ...
-
会社にどうしてお金が残らない...
-
会社の人に勝手にLINE追加され...
-
派遣社員に直接注意
-
会社の同じ課にずるい?人が一...
-
出戻り社員は一番下でしょ?? ...
-
派遣社員で社員から嫌われてい...
-
月1くらいで休む派遣さんが、休...
-
職場(パート先)で身分がバレた...
-
社員への残業時間公開について
-
中小企業の退職連鎖
-
セクハラの基準
-
自分にだけタメ口対応をされま...
-
妻が会社の男性と仲が良すぎる...
-
会社でパワハラがあることを新...
-
平社員の場合の役職名は?
おすすめ情報