
お世話になります。
当方、SQL server expressを使用しており、以下の2テーブルをフローIDで内部結合しています。
test1 test2
順番、フローID 通番、フローID、タイトル 更新日時
1 1 1 1 てすと 12/1
2 2 2 1 テスト2 12/2
3 3 3 2 テスト3 12/3
4 3 テスト4 12/4
SELECT * FROM test1 INNER JOIN test2 ON (test1.フローID=test2.フローID)
結果
順番 フローID 通番 フローID タイトル 更新日時
1 1 1 1 てすと 12/1
1 1 2 1 テスト2 12/2
2 2 3 2 テスト3 12/3
3 3 4 3 テスト4 12/4
ここで、順番=1の行で指定されているフローIDがテーブルtest2に二行存在するため、結合した結果も順番=1に対して二行になっています。
これを、test2のフローIDが重複する場合はtest2の更新日時が新しいほうだけを表示するようにしたいと考えています。
ご教授頂けますと幸いです。
感覚としては、test2テーブルをgroup by句でまとめたものをテーブルとして定義して、内部結合できればよさそうなのですが、上手い資料が見つかりませんでした。
クエリでも、ストアドプロシージャとしての実行でも構いません。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
TESTしてませんし、Deleteできるかわかりませんが
SELECT * FROM test1 INNER JOIN
(Select * From test2 where (フローID, 更新日時) = (SELECT (フローID, MAX(更新日時) ) From test2 Group by フローID ) ) as test2w
ON (test1.フローID=test2w.フローID)
カッコのネスト間違えてたらゴメン。
でも、重複のあるフローIDの、MAXではなかった行はどうなるのかな?
ご回答ありがとうございました。
参考にいろいろいじってみたら、満足のいく結果が得られました。
以下です。
SELECT test1.順番, test1.フローID, test2w.通番, test2w.フローID AS Expr1, test2w.タイトル, test2w.更新日時
FROM test1 INNER JOIN
(SELECT 通番, フローID, タイトル, 更新日時
FROM test2
WHERE (更新日時 IN
(SELECT MAX(更新日時) AS Expr1
FROM test2 AS test2_1
GROUP BY フローID))) AS test2w ON test1.フローID = test2w.フローID
大変ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(データベース) accessについて 2 2022/05/31 16:58
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLのエラー(~付近に不適切な...
-
SQLサーバー接続 特定のPCがWin...
-
ACCESS2007 フォーム 「バリア...
-
SQL Date型の列から年月だけを...
-
sqlserverで集計結果をUPDATEし...
-
Accessの重複なしのカウントの...
-
Microsoft SQL Serverについて
-
SQLのクエリの書き方
-
【VB.NET】日付型の列にNULLを...
-
SQL文 複数実行
-
<SQL>重複しているデータの場合...
-
ストアドプロシージャのRETURN...
-
BULK INSERT時のNull許容について
-
SQL 不要な文字列を削除したい
-
SQLserver セル内での改行って...
-
SQL クエリ データ数
-
[SQLServer] テーブル名からカ...
-
DTexec でSSISパッケージを実行...
-
SQLSERVERのデータファイル圧縮...
-
SQLサーバで和暦から西暦に変換...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
BULKINSERTのWITHオプションに...
-
SQLServerでtime型への変換
-
片方のテーブルに無いデータを...
-
日付型項目のNULLについて(Pos...
-
データ突合のよい方法を教えて...
-
プロシージャがみつかりません...
-
参照渡しをする時は、渡される...
-
オークションでパソコンを売る場合
-
SQL文について
-
Access 2000 サブクエリとJOIN
-
こういう使い方はありですか?
-
MS SQL Serverでのクエリ文
-
DELETEについて(結合による)
-
UPDATEについて(結合による)
-
InputBoxについて
-
VBA 100億になると#が自動...
-
【SQL】指定期間の合計、MAX...
-
sql express内部結合して重複行...
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
おすすめ情報