私はこの質問の説明的なタイトルについてはわかりませんでしたので、私は最高の文章と思っていました。実際に存在するよりも多くの行をテーブルから取得しようとしています
私はこのようなテーブルがあります。
必要な出力:
1, 1, 2016, P -- <-- it is 'P' in the table
1, 2, 2016, A
1, 3, 2016, A
1, 4, 2016, A
1, 5, 2016, A
1, 6, 2016, A
1, 7, 2016, A
1, 8, 2016, A
1, 9, 2016, A
1, 10, 2016, A
1, 11, 2016, A
1, 12, 2016, P -- <-- it is 'P' in the table
1, 1, 2017, A
1, 2, 2017, A
1, 3, 2017, A
1, 4, 2017, P -- <-- it is 'P' in the table
1, 5, 2017, A
1, 6, 2017, A
1, 7, 2017, A
1, 8, 2017, A
1, 9, 2017, A
1, 10, 2017, A
1, 11, 2017, A
1, 12, 2017, A
私は1以下のような結果セットを返すために、カーソルを使用せずに、SQL文を書きたい
StudentID, Month, Year, Present
-------------------------------
1, 1, 2016, P
1, 12, 2016, P
1, 4, 2017, P
を
これは、カーソルを使用せずに、1つのSQL文で可能です。
私はSQL Server 2000データベースを作成しています。
SQL Server 2000は、そうでない場合、私はCTEを経由して目的の間隔を構築すると言うし、その後に存在するテーブルを結合する左のだろう...かなりケースを制限しますそれ。それはSQL Server 2000でなければならないのですか? – Adwaenyth
古いバージョンのSQL Serverを使用している人はどれだけ多いのでしょうか。私は昨年、SQL Serverのユーザーグループに所属していて、そのスピーカーは、どのバージョンのユーザーが使用していたかを尋ねました。彼がリストを逆戻りしたとき、彼は実際に「私はほとんど尋ねることを恐れている... SQL Server 6.5の誰でも」と彼はまだ手を上げている。 –
ええ、最近、私たちは最近SQL Server 2016にアップグレードしました。戻ってくることは想像できませんでした。 – Adwaenyth