- ベストアンサー
クエリでグループ毎に連番を振りたい
ACCESS2000です。 以下のようなテーブルがあります。 役職と氏名の2つフィールドがあります。 役職 氏名 役職連番 部長 山田 1 部長 蟹田 2 部長 長谷 3 係長 金本 1 係長 佐藤 2 という感じで、役職に対して連番を振りたいんですが こんのようことをする場合はどうすれば良いんですか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
多分、クエリーでは出来ないと思いますよ。 VBAで組むしかないと思います。 VBAでループやレコード更新の記述ができれば、さして難しくはないでしょう。 いわゆるコントロールブレイクの処理になります。
その他の回答 (2)
- gonta_goma
- ベストアンサー率50% (37/73)
出来るかといえば、以下のクエリーで出来ます。 SELECT T.役職, T.氏名, Count(S.役職) AS 役職連番 FROM テーブル1 AS S, テーブル1 AS T WHERE S.役職=T.役職 And S.氏名<=T.氏名 GROUP BY T.役職, T.氏名 ORDER BY T.役職, T.氏名; ただ、このクエリだと係長→部長 に並びます。 ORDER BY T.役職 DESC, T.氏名としたら、部長→係長になりますが、他にも役職があったら意味ないです。 上級職から並べたい、とかならばその順番に、役職コードか何かが必要になります。 また、氏名の並びも元のテーブルと違ったものになります。
お礼
gonta_gomaさん、ご返事有り難うございました。 お陰様で出来ました。
- o23
- ベストアンサー率36% (64/175)
検索したところそれらしい内容がのってるページを見つけました 参考になりますか? ところで連番を付ける目的は何でしょう? 基本的に並び順を変更したりすると番号が変わってしまいます・・・
お礼
o23さん、ご返事有り難うございました。 お陰様で出来ました。
お礼
redskyさん、ご返事有り難うございました。 クエリでは無理なんですが・・・。 とってもすいませんが VBAでどういう感じで組むのか教えて頂けたら幸いです。
補足
ただ、元になるデータソース(役職と氏名が入っているフィールド)がクロス集計クエリで普通のテーブルではないんですが・・。