2016-11-22 42 views
0

我在我的SQL Server 2008 R2數據庫中有一個表,它有一個不同的行,並且在其他表中有多行。我正在尋找的是一個更新查詢,它將成爲存儲過程的一部分。SQL Server表中值的計數器

我想,每行有10個計數器,這將重複(見下文的例子)

Load_Id Counter Description 
=========================== 
C60000220121102134421 1 Text for Counter 1 
C60000220121102134421 2 Text for Counter 2 
C60000220121102134421 3 Text for Counter 3 
C60000220121102134421 4 Text for Counter 4 
C60000220121102134421 5 Text for Counter 5 
C60000220121102134421 6 Text for Counter 6 
C60000220121102134421 7 Text for Counter 7 
C60000220121102134421 8 Text for Counter 8 
C60000220121102134421 9 Text for Counter 9 
C60000220121102134421 10 Text for Counter 10 

這是我到目前爲止所。

我有一個使用計數器創建表的查詢,但我似乎無法得到查看T_DB_CLIENT_INFO表上的每一行的查詢,並添加了10個計數器爲1-10的行,以便描述可以被綁定到每個值。

SELECT DISTINCT 
    c.LOAD_ID, 
    ROW_NUMBER() OVER (ORDER BY c.LOAD_ID) AS COUNTER, 
    b.STATUS_DESCRIPTION,           
    c.CLNT_NM, c.CLIENT_ID, c.DATABASE_NAME, c.FLAG_FILTERED, 
    s.[ROUND] 
INTO 
    dbo.[load_id_counts] 
FROM 
    T_DB_CLIENT_INFO c 
JOIN 
    T_ICR_STAGING s ON c.LOAD_ID = s.LOAD_ID 
JOIN 
    overall_status_description b ON COUNTER = b.COUNTER 
+0

您的示例SQL無效,但無論如何使用mod(%)運算符將您的row_number重置爲10 –

回答

0

的%運算符的語法是這樣的,你的情況:

SELECT DISTINCT 
    c.LOAD_ID, 
    ((ROW_NUMBER() OVER (ORDER BY c.LOAD_ID) -1) % 10) + 1 AS COUNTER, 
    ... 
    INTO dbo.[load_id_counts] 
    FROM T_DB_CLIENT_INFO c 
    ... 

只需使用%運算會給你從0號,但你要的編號從1開始,所以這就是爲什麼你添加了-1+1

+0

謝謝mendosi。這正是我所需要的 – ncwright