
OSはWin98SE
Access2000です。
多分簡単なことなのかもしれないのですが、追加クエリの抽出条件を使って、
その列(更新回数)でいちばん大きな数字のみ別テーブルに抽出(追加)させたいのですがその式がわからず悩んでいます。
例(主キーなし)
店番号|商品番号|更新回数|金額|・・・
001 |A021 | 2 |300 |・・・
002 |A034 | 1 |200 |・・・
001 |A122 | 1 |150 |・・・
001 |A043 | 3 |500 |・・・
上記で店番号001が3データ入っている中の更新回数が3のデータのみ別のテーブルに追加したいのですが、最大を求めるのでMaxやDMaxを使用したらよいのかな?などと思ったのですが、その先の式の書き方がわからないのでどなたか教えていただけませんか。
どうぞよろしくお願いします。
No.3ベストアンサー
- 回答日時:
三度storkです。
蛇足ですが、先ほどの回答は、SQLを直書きするものだったんで、練習用にGUIでの操作で最新データの取り出し方を補足しておきます。
from句に入っているSQLをクエリとして保存してください。
クエリ名は、[最新データ]
-------------------------------------------
select 店番号,max(更新回数) as max更新回数
from [PC売上_T] group by 店番号
-------------------------------------------
どんなクエリになっているかは、デザインビューとデータシートビューで確認してください。
もうひとつクエリを作ります。
デザインビューで[PC売上_T]とさっき作った[最新データ]を追加して、店番号で結合し、さらに更新回数で結合します。結合線がふたつ出来ます。
これで最新のデータのみを抽出するクエリの出来上がりです。
この二つのクエリを一回で済ませると、#1のSQLになります。クエリを二つに分けていると誤ってクエリ[最新データ]を削除すると動作しなくなるので、出来るだけひとつにしましょう。
storkさん回答ありがとうございます。
また、質問しておきながらお返事が遅くなりまして申し訳ありません。
直書きのSQLは、まだみて理解できるところまで行っていないので
勉強して行きたいと思っています。
補足でいただいたGUIでの操作ありがとうございます。
これなら私にもわかりそうです早速試してみます。
昨日に続き今日も外出になりそうですのでこの質問は一度閉じさせていただきます。
もし、実行してみてわからないときは、また質問させてください。
そのときはどうぞよろしくお願いいたします。
本当に勉強になりますありがとうございました。
No.2
- 回答日時:
似たような質問だと思ったら同じ方でしたか、失礼しました。
>SQL中のtable1やtable2は指定するテーブル名を指定し
>たら良かったでしょうか。
回答#1のSQLはひとつのテーブルを切り口を変えて自己結合しています。
table1はテーブル名で、table2はtable1を元にしたクエリに別名(仮の名前)をつけているだけなんで、何でもいいです。
補足の内容からいくとtable1は[PC売上_T]ですかね。
>教えていただいたSQLはどこの部分に追加したらよいので>しょうか。
[PC売上_T]が履歴形式のトランザクションで、[PC売上_M]が最新情報のマスタですね。
from句以下を
-----------------------------------------------
from [PC売上_T]
inner join
(select 店番号,max(更新回数) as max更新回数
from [PC売上_T] group by 店番号 ) as 最新データ
on ([PC売上_T].店番号 = 最新データ.店番号)
and ([PC売上_T].更新回数 = 最新データ.max更新回数)
------------------------------------------------
※別名が[table2]だと分かりにくいので[最新データ]としました。
ただ追加するだけだと、前の質問(http://www.okweb.ne.jp/kotaeru.php3?q=155505)と同じ問題が発生すると思われますので、何らかの方法で回避してください。(分からなければ補足してください。)
No.1
- 回答日時:
過去ログに同じ問題があるのでそれの応用だと思います。
店番号+更新回数でユニークになりますね。
select *
from table1 inner join (select 店番号,max(更新回数) as max更新回数 from table1 group by 店番号)as table2) on (table1.店番号=table2.店番号) and (table1.更新回数=table2.max更新回数)
この回答への補足
storkさんたびたびありがとうございます。
また、返事が遅くなりすみません。
昨日回答いただいてから色々とやってみたのですが、私のSQL知識不足でうまくいきませんでした。
すみませんが少し質問させてください。
SQL中のtable1やtable2は指定するテーブル名を指定したら良かったでしょうか。
それと追加クエリで現在
INSERT INTO PC売上_M(店番号,商品番号,更新回数,金額・・・)
SELECT [PC売上_T].[店番号],[PC売上_T].[商品番号],[PC売上_T].[更新回数],[PC売上_T].[金額]・・・
FROM PC売上_T;
のような感じであるのですが、教えていただいたSQLはどこの部分に追加したらよいのでしょうか。
お手数ですがどうぞよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Excel(エクセル) Excelでデータを抽出するに良い方法 9 2023/02/06 12:42
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
このQ&Aを見た人はこんなQ&Aも見ています
-
Access 各レコードの中での最大フィールドを抽出したい
Access(アクセス)
-
ACCESS クエリで重複データを最新の1件だけ表示
Access(アクセス)
-
あるフィールドの最大値を条件にデータを抽出する方法
その他(データベース)
-
-
4
アクセス 日付抽出(年月のみ) 独特のテーブルデータをご了承ください。 毎月、先月分、先々月分の2ヶ
Access(アクセス)
-
5
最新の日付とその金額をクエリー抽出したい(access)
その他(データベース)
-
6
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
7
accessで重複を防ぎたい
Access(アクセス)
-
8
ACCESS 一番最新の日付の金額を出したいのですが・・
その他(データベース)
-
9
Accessの重複クエリで最小以外を削除したい
その他(Microsoft Office)
-
10
Accessで、定型入力を使って年と月のデータだけ入力したい
Access(アクセス)
-
11
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
12
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
13
ACCESSのクエリで抽出条件「または」は9個までしかかけませんよね…
Access(アクセス)
-
14
Access 複数のクエリの結果をひとつの表にまとめたいのですが
Access(アクセス)
-
15
アクセスで複数のレコード情報を1レコードにまとめる方法
Access(アクセス)
-
16
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
17
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
18
グループ毎の最大値を持つデータのみ抽出したい
SQL Server
-
19
クエリーの結果をフォームに表示させたい(Access2000)
その他(データベース)
-
20
Access2013 クエリ内別フィールドにある値より大きい場合のみ抽出する いつも大変お世話になっ
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースファイル(.db)を開...
-
警察はスマホに保存した動画や...
-
ACCESSのSQLで、NULLかNULLでな...
-
最新の日付とその金額をクエリ...
-
Accessフォームで平均値の出し...
-
SQLPlusで 選手の誕生日を2017...
-
CSVファイルでテキストの改行の...
-
エクセルのフィルタ抽出が固まる
-
ファイルメーカーへネットワー...
-
Accessを開きなおすとテキスト...
-
同じテーブルをLEFT JOIN
-
テキストボックスにコントロー...
-
シャープレジスター エラーコード
-
エクセル 自動入力
-
manana というやつで、間違って...
-
Excel VBA 転記について
-
データ復旧にかかる時間
-
三好康之さんの参考書、データ...
-
半角ハイフンに似た文字
-
データベースの勉強 公務員を目...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースファイル(.db)を開...
-
ACCESSのSQLで、NULLかNULLでな...
-
CSVファイルでテキストの改行の...
-
エクセルのフィルタ抽出が固まる
-
最新の日付とその金額をクエリ...
-
Accessを開きなおすとテキスト...
-
警察はスマホに保存した動画や...
-
顧客データベースを作る場合、...
-
半角ハイフンに似た文字
-
更新クエリをリンクデータベー...
-
テキストボックスにコントロー...
-
シートが異なるセル同士を、相...
-
Excelフィルタ抽出で「検索して...
-
googleフォームでインストール...
-
Access フォーム上でコンボボッ...
-
Accessフォームからパラメータ...
-
DocuWorksでの印刷
-
構文エラー:演算子がありませ...
-
20万行あるデータを動かしたい
-
Access クエリ上で表示させた割...
おすすめ情報