私について 私は SQL DBA プログラマーではありません。私は一人のふりをしています。したがって、複雑なクエリの設計に関しては、それが何であるかに応じて、私は初心者/中道です。
これまでのところ、これは私がやりたいことを示す例として思いついたものです。
これを調査してみましたが、ここまで来ました。
私が望むのは、RowNumber が RecId、GroupedDataId の 2 つの要因に基づいて動的になることです。
私がしていることに夢中になることなく。この簡単な例で十分に説明できることを願っています。
要因 役割の数は不明です。RecId は、複数の GroupedDataId を持つことができます。GroupedDataIds は、1 つのレコードのみを持つことができます。
出力希望
PCRID,GROuPedDataId, AnswerText, Question
1 1 Driver, Driver ROLE1
1 2 Driver, Driver ROLE2
1 33 Driver, Driver ROLE3
2 48 Driver, Driver ROLE1
2 55 Driver, Driver ROLE2
3 32 Driver, Driver ROLE1
3 33 Driver, Driver ROLE2
4 109 Driver, Driver ROLE1
作例
Create Table #example
(
RecId int,
GroupedDataId int,
Question varChar(50),
AnswerText varchar(100)
)
INSERT INTO #example (RecId, GroupedDataId, Question, AnswerText)
SELECT 1, 1, 'ROLE', 'Driver, Driver'
UNION
SELECT 1, 2, 'ROLE', 'Driver, Driver'
UNION
SELECT 1, 33, 'ROLE', 'Driver, Driver'
UNION
SELECT 2, 55, 'ROLE', 'Driver, Driver'
UNION
SELECT 2, 48, 'ROLE', 'Driver, Driver'
UNION
SELECT 3, 32, 'ROLE', 'Driver, Driver'
UNION<BR>
SELECT 3, 33, 'ROLE', 'Driver, Driver'
UNION
SELECT 4, 109, 'ROLE', 'Driver, Driver'
SELECT RecId
, GroupedDataId
, AnswerText
, Question = 'ROLE' + CAST(ROW_NUMBER() OVER (ORDER BY (SELECT RecId), (SELECT GroupedDataId)) AS VARCHAR(max))
FROM #example
DROP TABLE #example
<P>
これは私が得ているものです。Role # は、新しい RecId,GroupedDataId グループ化で最初からやり直さないことに注意してください。order by がそれを行うことを望んでいましたが、そうではありませんでした
PCRID,GROuPedDataId, AnswerText, Question
1 1 Driver, Driver ROLE1
1 2 Driver, Driver ROLE2
1 33 Driver, Driver ROLE3
2 48 Driver, Driver ROLE4
2 55 Driver, Driver ROLE5
3 32 Driver, Driver ROLE6
3 33 Driver, Driver ROLE7
4 109 Driver, Driver ROLE8
どんな助けでも大歓迎です...私は、私のデータが上記の例のように見えるこの時点に至るまで、ほぼ一日を費やしました。
ありがとう :)