2016-12-03 53 views
-2

我有以下2個SQL表存儲過程來更新計數

Table 1 
Id | Data | Values 
1 | rfsd | 23 
2 | tfgy | 45 
3 | rfff | 23 


Table 2 

Id | Fields | Counts 
1 | 23  | 0 
2 | 45  | 0 

正如你所看到的,計數字段的值爲0我想看到「字段」列在表2和與當時比較表1中的'值'列,並且只要值存在於'值'字段中就增加計數。

最終的結果應該顯示像這樣

Table 2 
Id | Fields | Counts 
1 | 23  | 2 
2 | 45  | 1 

這將是數自23出現兩次,45在「價值」表中的字段出現一次1

可有人請讓我知道如何爲此編寫存儲過程。

回答

1

把它放在存儲過程中。

WITH t1 AS (
SELECT 
    VALUES 
    , COUNT(*) AS Count2 
FROM 
    Table1 
GROUP BY 
    VALUES 
) 
UPDATE t2 
SET Counts = t1.Count2 
FROM 
    Table2 t2 
    JOIN t1 ON t2.Fields=t1.Values