2016-05-27 9 views
0

次のようなカスタムシーケンシャル番号を生成する方法はありますか? コードと年によって番号をグループ化して増分します。SQL Server 2012でカスタムシーケンシャル番号を生成する方法

Code Year Number 
A  2016 1 
A  2016 2 
A  2016 3 
B  2016 1 
B  2016 2 
C  2016 1 
A  2017 1 
A  2017 2 

いずれかの提案をいただければ幸いです。

EDIT
申し訳ありませんが、私は私が望むものをあまりにも曖昧でした。私はクエリ時に一意の番号を生成したいので、上記のデータコンテキストでCode:AとYear:2017の新しい番号を尋ねると、Numberは3になります。将来、Numberを適切に取得すると思いますコードと年を番号で保存する必要があります。

+1

この番号をテーブルに入れたいのですか、データを照会しますか? – dotnetom

+0

ああ、生成された数字は一意でなければならないことを忘れていたので、数字がテーブルに保存されている必要があります。 –

答えて

2

ROW_NUMBERを使用して、をCode,Yearグループに割り当てます。

SELECT *, 
    Number = ROW_NUMBER() OVER(PARTITION BY Code, [Year] ORDER BY (SELECT NULL)) 
FROM tbl 

SELECT NULLは、注文元の列に置き換えてください。

+1

ああ、このような簡単な返信です。どうもありがとう!私は将来の質問のためにその番号を保存するだけです。 –

関連する問題