2

次のデータがあります。

Txn Nmbr    Item ID     Desc
4           1111        Test 1
6           2222        Test 2
6           3333        Test 3
7           4444        Test 4
7           5555        Test 5
7           6666        Test 6

上記のすべてのデータに、「Txn Nmbr」ごとに一意のシーケンス番号である ONE MORE COLUMN が必要です。したがって、必要な出力は、

Txn Nmbr    Item ID     Desc        Unique Txn
4           1111        Test 1      1
6           2222        Test 2      2
6           3333        Test 3      2
7           4444        Test 4      3
7           5555        Test 5      3
7           6666        Test 6      3

私を助けてください!前もって感謝します!

4

4 に答える 4

1

してみてください:

DECLARE @table as TABLE(TxnNmbr INT, ItemID INT, Descr NVARCHAR(50))

insert into @table values (4, 1111, 'Test1')
insert into @table values (6, 2222, 'Test2')
insert into @table values (6, 3333, 'Test3')
insert into @table values (7, 4444, 'Test4')
insert into @table values (7, 5555, 'Test5')
insert into @table values (7, 6666, 'Test6')

SELECT
   *,
   DENSE_RANK() OVER (ORDER BY [TxnNmbr]) AS [Unique Txn]
FROM @table
于 2012-12-04T11:48:46.870 に答える
0

クエリ:

SQLFiddleExample

SELECT
t1.*,
(SELECT COUNT(*)
 FROM tbl t2
 WHERE t1.[Txn Nmbr] = t2.[Txn Nmbr]) as [Unique Txn]
FROM tbl t1

結果:

| TXN NMBR | ITEM ID |   DESC | UNIQUE TXN |
--------------------------------------------
|        4 |    1111 | Test 1 |          1 |
|        6 |    2222 | Test 2 |          2 |
|        6 |    3333 | Test 3 |          2 |
|        7 |    4444 | Test 4 |          3 |
|        7 |    5555 | Test 5 |          3 |
|        7 |    6666 | Test 6 |          3 |
于 2012-12-05T12:41:33.617 に答える
0

TSQL をご覧くださいRANK- MSDN リンク

于 2012-12-04T11:47:29.980 に答える
0
select txn_number, 
       item_id, 
       desc, 
       row_number() over (partition by txn_number order by item_id) as unique_txn
from the_table
于 2012-12-04T11:48:15.507 に答える