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も見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
ACCESS クエリで重複データを最新の1件だけ表示
Access(アクセス)
-
Access2000 2番目に大きい数値の抽出
Excel(エクセル)
-
あるフィールドの最大値を条件にデータを抽出する方法
その他(データベース)
-
-
4
ACCESS 重複データを1つだけ表示したい(初心者です)
Access(アクセス)
-
5
Accessで、1つの項目に複数の置換えを1度でするには?
Access(アクセス)
-
6
グループ毎の最大値を持つデータのみ抽出したい
SQL Server
-
7
ACCESSのMax(Min)関数使用方法
Access(アクセス)
-
8
ACCESS 一番最新の日付の金額を出したいのですが・・
その他(データベース)
-
9
選択クエリで空欄のテーブルがあっても表示したい
Access(アクセス)
-
10
Access サブフォームでの選択行の取得
その他(データベース)
-
11
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
12
Accessでデータシートに同じデータがいくつもでてしまいます。
その他(データベース)
-
13
Access 各レコードの中での最大フィールドを抽出したい
Access(アクセス)
-
14
2つ目のレコードの値を取得するには?
Access(アクセス)
-
15
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
16
ACCESSで2つフィールドの日付を比較して新しい日付を表示するには。
Access(アクセス)
-
17
クロス集計クエリの結果をテーブルにしたい
Access(アクセス)
-
18
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
19
「#エラー」の回避
Access(アクセス)
-
20
Accessのクエリーのゼロデータ行の非表示の仕方
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルの集計値を別テーブル...
-
枝番と主キーがある複数テーブ...
-
Accessのクエリでフィールドの...
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
Accessで別テーブルの値をフォ...
-
ADO VBA 実行時エラー3021
-
select insertで複数テーブルか...
-
SELECTで1件のみ取得するには?
-
SQL文で右から1文字だけ削除す...
-
DataGridViewの、選択されてい...
-
レコードが存在しなかった場合
-
MERGE文を単体テーブルに対して...
-
select句副問い合わせ 値の個...
-
キーが同じを複数行を1行にま...
-
GROUP BYを使ったSELECT文の総...
-
Excelで、改行がある場合の条件...
-
JSPのNULLレコード表示について...
-
Access終了時の最適化が失敗?
-
アクセスでレポートの1印刷内...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのクエリでフィールドの...
-
枝番と主キーがある複数テーブ...
-
ACCESS VBA レコードセットの参...
-
ちなみになぜv=(v・e1)e1+(v・e...
-
既存のテーブルに重複フラグを新設
-
同じ列に2行づつで出力するSQL
-
テーブルの集計値を別テーブル...
-
GROUP BYを行った後に結合した...
-
Accessで別テーブルの値をフォ...
-
Oracleでの文字列連結サイズの上限
-
SELECTで1件のみ取得するには?
-
SQL文で右から1文字だけ削除す...
-
GROUP BYを使ったSELECT文の総...
-
select句副問い合わせ 値の個...
-
レコードが存在しなかった場合
-
ADO VBA 実行時エラー3021
-
SQL文で素早くNULLを除外する方法
-
実績累計の求め方と意味を教え...
-
select insertで複数テーブルか...
-
ファイル書込みで一行もしくは...
おすすめ情報