2016-05-23 50 views
0
Col1 | Col2 | 
10  NULL 
20  NULL 
30  NULL 
20  NULL 

我有一個表格,我想用下列條件更新Col2的每一行:一些定標器號碼X/(Count of the value from Col1)。也就是說,如果X = 8那麼我應該有以下的follwoing值8/1 , 8/2, 8/1, 8,2 and so on..MS SQL自己加入表格

我做:

SELECT COUNT(*) 
FROM (
    SELECT [Table].Col1 
    FROM [Table] 
    INNER JOIN [Table] T ON [Table].Id = T.Id 
    WHERE [Table].Col1 = T.Col1 
    ) 

你能指出我的錯誤嗎?

回答

2

你需要的東西是這樣的:

SELECT t1.Col1, 8/t2.cnt 
FROM [Table] t1 
INNER JOIN (
    SELECT Col1, COUNT(*) AS cnt 
    From [Table] 
    GROUP BY Col1 
) t2 ON t1.Col1 = t2.Col2 

上面的查詢使用包含每Col1值計數派生表。使用這個計數,我們可以完成原始表格每行所需的數學運算。

+0

非常感謝!現在工作:) –