
SQLでのレコード抽出について、以下のテーブルよりレコード抽出するには、SQLをどのように組めば宜しいでしょうか?
テーブルA
日付 取引番号 取引枝番
20171001 111111 11111
20171001 111112 11111
20171001 111112 11112
20171002 111112 11111
20171003 111111 11111
20171003 111112 11111
20171003 111112 11112
20171003 111112 11113
①「日付」で最大値を求める。(20171003)
②「日付」の最大値の中での4レコードで、今度は「取引番号」の最大値を求める。(111112)
③「取引番号」の最大値の中での3レコードで、今度は「取引枝番」の最大値を求める(11113)
④上記までの結果、最後の8レコード目が抽出される。
No.2ベストアンサー
- 回答日時:
create table tbl_a(d int,no int,subno int);
insert into tbl_a values
(20171001,111111,11111),
(20171001,111112,11111),
(20171001,111112,11112),
(20171002,111112,11111),
(20171003,111111,11111),
(20171003,111112,11111),
(20171003,111112,11112),
(20171003,111112,11113);
(1)
select max(d) from tbl_a
(2)
select max(no) from tbl_a
where d=(select max(d) from tbl_a)
(3)
select max(subno) from tbl_a as t1
where (d,no) in (
select d,max(no) from tbl_a
group by d
)
(4)意味がわからない、こう?
select * from tbl_a
where d=(select max(d) from tbl_a)
and no=(select max(no) from tbl_a where d=(select max(d) from tbl_a))
and subno=(select max(subno) from tbl_a as t1 where (d,no) in (select d,max(no) from tbl_a group by d))
No.1
- 回答日時:
えっと。
。。ようは、、、
「日付が最大」かつ「取引番号が最大」かつ「取引枝番が最大」のレコードを抽出する
というだけのことですよね。
これがわからないのはSQLをほぼ全くご存じないのだと思います。
であれば、まずはSQLの初歩を勉強してください。
教わってこの場は逃れてもすぐまた行き詰まるだけですので。
https://www.1keydata.com/jp/sql/
http://itpro.nikkeibp.co.jp/article/COLUMN/20061 …
ピンポイントで勉強したい場合はGoogleなどで「sql 最大値 条件」といった適当なキーワードで検索すると(1)~(3)の行い方を説明したページがたくさん見つかるはずですし、同様に「sql 複合条件」といった適当なキーワードで検索すると(4)の行い方を説明したページがたくさん見つかるはずです。
SQL文を書けばよいだけの問題であればそれで済むはずです。
実際に動かすのでしたら使用しているRDBのSQLもそれで問題無いか確認しましょう。方言が強いRDBもありますから。(^^;
あと、RDBへの接続手順とかも知らないといけないですね。
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Date型にNULLをセットしたい V...
-
Accessで日付が変わると番号が...
-
ADO VBA 実行時エラー3021
-
Oracleでの文字列連結サイズの上限
-
OracleのSQL*PLUSで、デー...
-
GROUP BYを行った後に結合した...
-
ACCESSの集計クエリで3件ある...
-
ACCESSで大量の更新を行うと「...
-
ADOでエクセルからアクセス...
-
PHP+MySQL
-
Excelで、改行がある場合の条件...
-
oracleの分割delete
-
キーが同じを複数行を1行にま...
-
Accessで別テーブルの値をフォ...
-
Access終了時の最適化が失敗?
-
ACCESSのクエリで同じSQL文だが...
-
エクセルのピボットテーブルの...
-
データセットのレコード更新が...
-
SQL GROUPで件数の一番多いレコ...
-
ワードの差込印刷で教えて下さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECTで1件のみ取得するには?
-
Date型にNULLをセットしたい V...
-
SQL>UPDATEと同時にその件数を...
-
sqlplusの処理が途中でとまる
-
☆☆☆☆SQL Olacle 3つ以上の文字...
-
oracleのinsert select性能
-
[Access]時間帯の重複チェック
-
ORDER BY 半角カナ
-
異なるDB間でのJOINやVIEWについて
-
PostgreSQLで小数点以下を処理...
-
AccessVBAでリンクテーブルの参...
-
重複しているデータを取得したい
-
連番のつけ方
-
SQL-文字列操作について
-
存在するデータの一覧を出すには?
-
SQLでのレコード抽出について、...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
OracleのSQL*PLUSで、デー...
-
ADO VBA 実行時エラー3021
おすすめ情報