2016-11-22 1 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 테이블의 각 행을 살펴보고 1-10의 카운터가있는 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

관련 문제