投稿

ラベル(primary key)が付いた投稿を表示しています

[SQL Server]データテーブル内最新の情報のみを表示させる 説明編

今回の記事はSQLserver内での記述です。   前回の記事 の詳細説明です。 最新のデータのみを表示させたい場合のselect文です。 例      テーブル名 テストテーブル         コード seq     その他データ・・・・・   001        1         ---  --- ---     001        2         ---  --- --- の場合     002        1         ---       ---       --- select  test.コード, test.seq, test2.その他のデータ1,test2.その他のデータ2・・・・ from (select コード,max(seq) as seq  from テストテーブル        group by コード)  as test left join テストテーブル as test2 on test.コード = test2.コード and test.seq = test2.seq order by  convert (integer, test.コード)  結果下のように表示されます。         コード seq     その他データ・・・・・     001        2         ...

[SQL Server]データテーブル内最新の情報のみを表示させる

今回の記事はSQLserver内での記述です。 まず状況の説明です。 データベースのテーブルには primarykey(主キー:データを識別するコードなど被らないもの) が2つ設定されている(複合キー)前提です。 一つはコード、一つはseq(シーケンス番号という)。 過去の情報も維持したい場合などにコードのみではなく、シーケンス番号も使います。 データベースのテーブル↓         コード seq     その他データ・・・・・   001        1         ---  --- ---     001        2         ---  --- --- 過去の情報も維持すると、このようにコードが被ります。 普通はコードでレコード(1行)を識別するので、被るとエラーになります。 seqは新しい情報ほど数が大きくなるように登録される前提で、 コードが被っても登録できるように複合キーにしているわけです。 こういった状況での、 最新のデータのみを表示させたい場合のselect文です。 例      テーブル名 テストテーブル         コード seq     その他データ・・・・・   001        1         ---  --- ---     001        2         ---  --- --- の場合     002        1         ---...