- 締切済み
アクセスでやる一番いい方法。。
よろしくお願いします。 以前に似た質問で教えてもらったのですが、、、、、 下記のようなデータで、下三けたは連番で、前は識別番号です この場合最後の連番の値を知りたいのですが簡単に出来る 方法を教えてください。 databaseの経験あります(10年以上前)しかし、今 書いてある(式)ものを見ても解読できません、help、ネットで 調べましたがよく解りません、一つでも出来ると少しずつ 解ると思います、どうぞよろしくお願いします。 A1-01-001 A1-01-002 A1-01-003・・・・ A2-01-001 A2-01-002 A2-01-003・・・・ B1-01-001 B1-01-002 B1-01-003・・・ C1-02-003
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- CHRONOS_0
- ベストアンサー率54% (457/838)
このテーブルならあのクエリでできます 循環参照になどなるはずがありません 原因はアップされていないところにありますね 実物を見ないとバグつぶしは難しそうです 周りに誰かAccessがわかる人はいないのですか
- CHRONOS_0
- ベストアンサー率54% (457/838)
クエリにおかしいところはないようですね となると原因はテーブルのほうでしょう 元になっているテーブルはどういうものですか? 最初にアップしたもののように省略せずに テーブルの情報を出してください テーブル2となっていますが1もあるならそれもね
お礼
テーブル1をつけようとしましたが お礼内容のところには貼り付けっ出来ない様です。
補足
ありがとうございます。 いっぱいつくり過ぎました。試すつもりで、 tableは ID オートナンバー 装置番号 テキスト型で、 ID 装置番号 1 31-02-001 2 31-02-004 3 31-02-005 4 11-02-003 5 11-02-003 6 11-02-003 7 21-02-001 8 21-02-002 9 21-02-003 です。 よろしくお願いします、 本当に助かります。
- CHRONOS_0
- ベストアンサー率54% (457/838)
そんな難しいクエリじゃありません たぶんつまらないミスをしているのでしょう そのうまくいかないクエリをSQLビューで表示し そこに書かれているものをここにアップしてください
補足
何度もすみません 下記です。 これだと最後はselectで指定してる別名 装置番号が循環参照を発生していますというerrでとまっています。 (SELECT Left([装置番号],5) AS グループ ,Max([装置番号]) AS 番号 FROM テーブル2 GROUP BY Left([装置番号],5);)
- CHRONOS_0
- ベストアンサー率54% (457/838)
なぜクロス集計? 普通の集計クエリじゃだめなの 前にアップした方法で出来るクエリのSQLは SELECT Max(テーブル名.フィールド名) AS フィールド名の最大 FROM テーブル名 GROUP BY Left([フィールド名],5); 結果 IDの最大 A1-01-003 A2-01-003 B1-01-003 C1-02-003
お礼
ありがとうございました。 同じデータを同じようにクエリを作り 試しましたが結果は出ませんでした。 クエリでerrが出続けあきらめました。
- CHRONOS_0
- ベストアンサー率54% (457/838)
フィールドの左5桁をグループに指定し最大値を求めるだけです クエリデザインビューなら Left(フィールド名,5) という式フィールドを作り 集計クエリに変えて 式フィールドをグループにし、元のフィールドの最大を求めます
お礼
ありがとうございました。 これも試しましたがうまくいきませんでした。
補足
たびたびすみません。 クロス集計クエリを作りました。 朝から取り組んでいます。 識別番号が多いため横広がりです、これを最大値だけ 出すように 最大値: Max(Right([機器番号],3)) と入れていますが 括弧が多いとか(|)の縦棒がないとかでデータになりません。 何がおかしいでしょうか?
- imogasi
- ベストアンサー率27% (4737/17069)
テーブルの最後のレコードでよいというなら http://www.feedsoft.net/access/sql/sql54.html ーー SQLで SELECT LAST(氏名) FROM 社員2 クエリ; のように氏名を連番にかえて実行する手もあるとおもう。 >、レコードがテーブルに入力されたときの順序 に基づいて、削除されていない先頭または最後のレコードを返します。 では使えないかな。
お礼
ありがとうございます。 最後のレコードではなく識別番号の最後の連番なので 無理みたいです。
補足
ありがとうございます。 詳細をよく見てみます。やれるかどうか試します。 解らないところまたよろしくお願い致します。
- keirika
- ベストアンサー率42% (279/658)
テーブルを元にクエリを作るのが一番だと思います。 フィールドに最大値: Max(Right([データ],3))と入れて保存し実行。 意味はデータの右(Right)から3桁を取り出してその中で最大(Max)を抽出する。
補足
ありがとうございます。 下記はどういう意味でしょうか? >テーブルを元にクエリを作るのが一番だと思います。 たとえばどんなクエリですか? 下の2段は理解できました。 よろしくお願いします
お礼
ありがとうございました。 周りに誰もいなかったので。 同じ種類のものをいくつか作って試したのと 家、会社のコンピュータでも同じerrが出るので 何か足りないのでしょうね。