0

ここに私の現在のデータがあります

FileNumber | Type | PerYear | PerMonth
L200200      Boat   2013      1
L303000      Boat2  2013      1
L400400      Yack   2013      2
L500500      Comp   2013      2
L600600      Item   2013      3
...
L909000      Chair  2014      1
X900220      Battle 2014      2

PerYear および PerMonth に基づいて、種類の Identity(counter) 列を使用したクエリを作成したいと思います。ここに、取得したい結果を示します。

 KindOFIdentity FileNumber | Type | PerYear | PerMonth
 1              L200200      Boat   2013      1
 1              L303000      Boat2  2013      1
 2              L400400      Yack   2013      2
 2              L500500      Comp   2013      2
 3              L600600      Item   2013      3
 4 ...
 5 ...
 6 ...
 7 ...
 8 ...
 9 ...
 10 ...
 11 ...
 12 ... 
 13             L909000      Chair  2014      1
 14             X900220      Battle 2014      2

次のクエリでは、適切な結果が得られません。

Select ROW_NUMBER() over (partition by PerYear,PerMonth order by PerYear, PerMonth) AS KindOFIdentity, Type, PerYear, PerMonth
from MyTable
4

2 に答える 2

6

DENSE_RANK()なしで使用、PARTITION

SELECT *other columns*, DENSE_RANK() OVER (ORDER BY PerYear, PerMonth) FROM dbo.MyTable;
于 2013-10-08T14:41:12.130 に答える