以下に示す例の表があり、人とその生年月日と死亡年数がリストされています(9999は生きている人を示します)。
person | born | died
1 | 2001 | 9999
2 | 2002 | 2003
3 | 2002 | 2008
4 | 2004 | 2009
5 | 2005 | 9999
6 | 2010 | 2012
何年にもわたって人口を計算したいと思います。上記の例では、出力は次のようになります。行の最後にある生きている人のリストは、デモンストレーションのみを目的としたものであり、出力では必要ありません。
year | population
2001 | 1 (1)
2002 | 3 (1,2,3)
2003 | 2 (1,3)
2004 | 3 (1,3,4)
2005 | 4 (1,3,4,5)
2006 | 4 (1,3,4,5)
2007 | 4 (1,3,4,5)
2008 | 3 (1,4,5)
2009 | 2 (1,5)
2010 | 3 (1,5,6)
2011 | 3 (1,5,6)
2012 | 2 (1,5)
これでC#プログラムを作成し、元のテーブルの各行をループして、生年と死亡年の間にある各年の人口数を増やすことができます。ただし、完全にTSQLスクリプトで実行する必要があります。私はTSQLの初心者です。どうすればいいですか?同様の問題がすでに議論されている場合は、それを指摘してください。ありがとうございました。