アプリ版:「スタンプのみでお礼する」機能のリリースについて

あるテーブルが次のような構造になっています。
テーブルA 
年 smallint プライマリキー
番号 smallint プライマリキー
子番 smallint プライマリキー
処理日付 date
備考 nvarchar

年、番号でグループ化して、子番が最大のレコードの処理日付と備考を得たい
場合の1つのSELECT文で行う方法はあるのでしょうか。

自分なりに調べてみたのですが、
SELECT 年,番号,MAX(子番) AS MAX子番 FROM テーブルA GROUP BY 年,番号

SELECT * FROM テーブルA WHERE 年=(上記で得た年の変数) AND 番号=(上記で得た番号の変数)AND 子番=(上記で得た子番の変数)
の2文で行う方法はあるのですが、1文で記述できる方法が分かりませんでした。
ご存じの方がおられましたらご教授願います。 

環境はEXCELのVBAからSQLサーバー配下のDBのテーブル検索です。

A 回答 (1件)

2つのSELECTを1文で記述できます。



SELECT テーブルA.* FROM テーブルA, (SELECT 年,番号,MAX(子番) AS 子番 FROM テーブルA GROUP BY 年,番号) AS テーブルB
WHERE テーブルA.年=テーブルB.年 AND テーブルA.番号=テーブルB.番号 AND テーブルA.子番=テーブルB.子番
    • good
    • 0
この回答へのお礼

bx2様

ご教授ありがとうございました。うまく動作することが確認できました。
自分の力では、いくら調べてもわからなかったと思います。

お礼日時:2019/12/16 22:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!