教えてください。
商品テーブルに以下のフィールドがあるとします。
商品コード、補助コード、入力日、原価
0010,001,20050901,1000
0010,005,20050902,1010
0010,008,20050907,0958
0020,100,20050901,0500
0020,010,20010905,0550
0100,100,20040501,1200
このテーブルから、商品コードごとに1件のレコード(例えば補助コードが最大のものとか入力日が最大のもの)を取得するクエリーはどのように作成すればよいでしょうか?
No.9ベストアンサー
- 回答日時:
クエリにて
新しいフィールド aa:[補助コード] & [入力日] & [原価]を作成して、
商品コードでグループ化
aaの最大値を取って
補助コードの値として 補助CD:left([aa],3)
入力日の値として 入力日A:mid([aa],4,8)
原価の値として 原価A:right([aa],4)
といったようにしてはいかがでしょう
No.8
- 回答日時:
選択クエリを作りそのクエリを集計クエリにし商品コードをグループ化・補助コードを最大・入力日を最大・単価を最小とすれば
0010,001,20050901,1000
0010,005,20050902,1010
0010,008,20050907,0958
0020,100,20050901,0500
0020,010,20050905,0550
0100,100,20040501,1200
を
0010,008,20050907,0958
0020,100,20050905,0500
0100,100,20040501,1200
と表示できますよ。
SQLなら
SELECT 商品テーブル.商品コード, Max(商品テーブル.補助コード) AS 補助コードの最大, Max(商品テーブル.入力日) AS 入力日の最大, Min(商品テーブル.単価) AS 単価の最小
FROM 商品テーブル
GROUP BY 商品テーブル.商品コード;
で出来ます。
No.7
- 回答日時:
No5sanbitです。
ご質問の趣旨に合っていますか?
この方法だと項目ごとに2個のクエリが必要ですね。
いい方法が思いつきません。
他にいい回答があればいいですね。
No.6
- 回答日時:
回答ではありませんが気がついたことがあるので少し書きます。
勘違いがあったらご指摘ください。どうも話が噛み合わないと思っていたのですが(おそらく質問者様のほうもそうでしょうが)、原因がわかりました。質問文のサンプルですが「0020,010,20010905,0550」になってますね。日付が2001年になってます。一方、質問者様の補足を見る限り、2001年の日付はありません。ということは、サンプルの方は2005年が正解ですか?
少し混乱してきたので、元のデータと結果のサンプルを再度補足していただけますか。それを見て、もう一度考えます。サンプルはもう少し長めでお願いします(同じ商品コードで3レコードくらい)。
この回答への補足
そうですね、テーブルのサンプルがあまりよくなく、補足#4はまちがってますね。
サンプルテーブルの5行目が
0020,010,20050905,0550
であった場合、
補足#4のようになりほしい結果ではないということです。
No.5
- 回答日時:
クエリを集計でグループ化し
商品コード:グループ
補助コード:最大とします。
次にこのクエリと商品テーブルで商品コードと補助コードゲでリンクしたクエリを作成します。
自信有りませんが間違ってましたらご容赦ください。
No.4
- 回答日時:
#2の回答は、#1の補足の表が「補助コード=最大、入力日=最大、原価=最小」となっていたのでそのまま作ったんですが...。
違います?> 入力日および原価は、最大、最小の指定をするのではなく表示させたいのですが可能ですか?
ちょっと意味がわかりかねるんですが、何を表示させればいいんでしょうか。結果に出すのは、商品コード1種類につき1レコードでいいんですよね? でも、元のレコードは複数あるわけで、そのうちのどれを取ればいいんでしょう? 補足お願いします。
言葉で説明しづらかったら、もう少し長めのサンプルを書いてもらったほうがいいかもしれないです。元の表が結果こうなるみたいな感じで。
この回答への補足
補助コードが最大だからといって、入力日が最大とは限らず、原価が最小とは限らないということです。
#1の補足に書いたほしい結果は以下のとおりですが、
商品コード、補助コード、入力日、原価
0010,008,20050907,0958
0020,100,20050901,0500
0100,100,20040501,1200
入力日=最大、原価=最小の指定をすると、以下のようになりませんか?
商品コード、補助コード、入力日、原価
0010,008,20050907,0958
0020,100,20050905,0500
0100,100,20040501,1200
No.1
- 回答日時:
選択クエリの作成ですね。
補助コード選択クエリの場合で説明します。
1.”ウィザードを使用してクエリを作成する。”でテーブルのすべての要素を選択してクエリを作成します。
作成したクエリを、デザインモードで開いて、補助コードフィールドの抽出条件欄に [補助コードを入力] と入力します。([ ]も入力です)
これで、クエリを開くと、”補助コードを入力”とのダイアログが出ますので、そこに補助コードを入力すれば、該当するレコードが表示されます。
2.入力日クエリも、1.で作成したクエリをコピーして、([補助コードを入力]は削除します)入力日テーブルに、同様の作業を行えば作成できます。
この回答への補足
補助コードをパラメータ入力するのではなく、最大のものを自動判定でセレクトしたいのです。
(各商品コードごとに補助コードの最大値がわからないのでパラメータ入力もできないのです。)
作成したクエリを実行すると以下の結果が得られるようにしたいのです。
商品コード、補助コード、入力日、原価
0010,008,20050907,0958
0020,100,20050901,0500
0100,100,20040501,1200
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) VBA 税率を判定表する方法を教えて下さい。 10 2022/03/28 11:21
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Excel(エクセル) エクセル 関数について 4 2022/08/05 11:03
- Excel(エクセル) Excelの操作方法を教えてください!頭文字2~8文字で特定の値に返す方法 8 2022/07/14 11:26
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- その他(買い物・ショッピング) JANコードの登録について 1 2022/07/23 14:19
- ヤフオク! ヤフオクの取引について 1 2022/04/16 23:08
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
商品コード番号を入力すると商...
-
PLSQLの識別子エラー
-
SQL 2つのテーブルとSUBSTRING...
-
アクセス2003 SQL2000を使用し...
-
行方向のデータを横に並べる
-
Accessリレーションシップ
-
[ BETWEEN ] vs [ >= AND <= ]
-
Access 1レコードずつcsvで出力...
-
accessのエクスポートエラーに...
-
SELECT文でのデッドロックに対...
-
ACCESSのSQLで、NULLかNULLでな...
-
Accessにインポートしたら並び...
-
ACCESSで複数テーブルを結合し...
-
accessテーブル作成クエリを実...
-
Access 削除クエリが重い
-
IFで条件を分岐させてのINSERT...
-
ボタンをクリックした回数をカ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
ACCESS 一つのフィールドに複...
-
PLSQLの識別子エラー
-
主キーの変更
-
Accessでフィールドを比較した...
-
SQL 2つのテーブルとSUBSTRING...
-
続.ORACLEのSELECTのソートに...
-
行方向のデータを横に並べる
-
下記のsqlで取得されるレコード...
-
VIEWでテーブルの集計結果...
-
update文で質問です。 下記の条...
-
[Oracle] UPDATE分の副問い合わ...
-
自分自身への矢印
-
片方だけ抽出する方法(SQL)
-
Accessユニオンクエリーで2つ...
-
連番のMin, Maxを取得したい
-
Inner join と Left joinの明...
-
日付の最大値を検索条件にする方法
おすすめ情報