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で質問しましょう!
似たような質問が見つかりました
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- Access(アクセス) Accessのリンクテーブルのパスを相対パスにする方法について教えて頂きたいです 1 2023/02/08 13:29
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
悪口を本人に聞かれてしまった
-
過労死が起きる理由はリクルー...
-
巨乳の同僚
-
会社の人に勝手にLINE追加され...
-
社員各位という言葉について
-
月1くらいで休む派遣さんが、休...
-
職場で空気のような存在になっ...
-
平社員の場合の役職名は?
-
会社の互助会費について
-
社員名簿で家族構成書くとこあ...
-
自分にだけタメ口対応をされま...
-
若いイケメンには態度を変える...
-
皆さんの会社の親睦会費は社員...
-
出世とかしたくないって人は中...
-
会社の鍵紛失の際の自己負担
-
Access VBA DB(先頭の0値を...
-
先月異動してしまった社員さん...
-
マクドナルド社員になるのはか...
-
恋人にしたい乳オブザイヤー
-
「ご説明します」と「説明させ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
平社員の場合の役職名は?
-
出戻り社員は一番下でしょ?? ...
-
会社の人に勝手にLINE追加され...
-
巨乳の同僚
-
社員名簿で家族構成書くとこあ...
-
社員各位という言葉について
-
職場で空気のような存在になっ...
-
社内盗撮
-
会社の互助会費について
-
社員への残業時間公開について
-
マクドナルド社員になるのはか...
-
帰り際になって急に話しかけて...
-
月1くらいで休む派遣さんが、休...
-
自分にだけタメ口対応をされま...
-
派遣社員に直接注意
-
悪口を本人に聞かれてしまった
-
皆さんの会社の親睦会費は社員...
-
若いイケメンには態度を変える...
-
妻ですが男性と2人だけの出張が...
-
社員がPCを壊した場合の対処方...
おすすめ情報