以下の[年度]テーブルと、年度をキーにした[データ]テーブルがあります。
年度ごとに、その年度のデータと、その年度より一つ以上前の最新の1件のデータを取得するようにしたいです。
####[nendo]テーブル
| nendo | |
|---|---|
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | |
| ####[data]テーブル | |
| nendo | data |
| :-- | :--: |
| 2 | B |
| 4 | D |
| 5 | E |
| 6 | F |
| 9 | I |
| 10 | J |
| 12 | L |
| ####求める結果 | |
| nendo | current_data |
| :-- | :--: |
| 1 | |
| 2 | B |
| 3 | B |
| 4 | D |
| 5 | E |
| 6 | F |
| 7 | F |
| 8 | F |
| 9 | I |
| 10 | J |
| 11 | J |
| 12 | L |
| 13 | L |
| 14 | L |
| 15 | L |
| ##試したSQL | |
| ```SQL | |
| SELECT |
nendo.nendo, x.data AS current_d, y.data AS before_d
FROM
nendo
LEFT JOIN
data x
ON x.nendo = nendo.nendo
LEFT JOIN
data y
ON y.nendo < nendo.nendo -- ここをどうすればいいかわからない。
データベースはSQLServerです。 急遽仕事を充てられて、細かいバージョンは不明ですので最新のバージョンを想定して回答していただければ問題ありません。 よろしくお願いいたします。
仕事なら組織内で解決するのが筋だと思うのですが?
teratailでは個人的な内容の質問しかしてはいけないのですか?
組織の業務としてやっていることは組織内で解決するのが当たり前でしょ。あなたに十分な教育を与えられないような組織がどうやって製品品質を担保できるの?
IT関係のお仕事をされているかわかりませんが、インターネットを使ってわからないことを調べるということはしませんか?全て組織内で完結しているのですか?それと同じくらいのレベルのことだと思います。
特に今回の質問について、会社の情報が漏洩するような質問ではないのでteratailも問題とはしないと思いますが。
あなたの上司、先輩に聞いてみたら? 厳しい会社だと規則違反で懲戒対象かも。
そもそも、ネットで調べることと、ここのような誰でもアクセスできる Q&A サイトで質問するのは違うって認識できてないのが驚き。
回答3件
あなたの回答
tips
プレビュー