
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ランキング
-
ORDER BY 半角カナ
-
☆☆☆☆SQL Olacle 3つ以上の文字...
-
ADO VBA 実行時エラー3021
-
Oracleでの文字列連結サイズの上限
-
OracleのSQL*PLUSで、デー...
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
ACCESSの集計クエリで3件ある...
-
使うべきでない文字。
-
Accessで別テーブルの値をフォ...
-
postgresql DELETE後commit...
-
Excelでセルの書式設定を使用し...
-
割合(パーセント)を求めるに...
-
沿線コード
-
MERGE文を単体テーブルに対して...
-
抽出したデータを修正して元の...
-
固定値を含む結合と複数テーブ...
-
集計後の数値が倍になる
-
SQLで複数の条件がある場合
-
データセットのレコード更新が...
マンスリーランキングこのカテゴリの人気マンスリー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
おすすめ情報