2016-09-19 62 views
0

我有3個表data_kabupaten,master_data和堪布如何從另一個表中更新表的總和?

data_kabupaten 
+--------------+----------+----------+---------+ 
|kota/kabupaten|perbulan |j_penduduk|rata-rata| 
+--------------+----------+----------+---------+ 
|makassar  |2016-06-31|   |   | 
|makassar  |2016-07-31|   |   | 
|makassar  |2016-08-31|   |   | 
|...   |...  |   |   | 
+--------------+----------+----------+---------+ 

master data     kampus 
+--------------+-------+ +---------+-------+ 
|kota/kabupaten|id_kota| |nim  |kota_id| 
+--------------+-------+ +---------+-------+ 
|makassar  |m012 | |238011003|m012 | 
|makassar  |m012 | |...  |... | 
|makassar  |m012 | +---------+-------+ 
|...   |... | 
+--------------+-------+ 

如何更新我的data_kabupaten表與

j_penduduk =計數(不同[NIM])

回答

0
 
;with cte as(
    select [kota/kabupaten], count(distinct nim) as CountNim from kampus as a 
    inner join master_data as b on a.kota_id = b.id_kota 
    group by [kota/kabupaten] 
) 
update data_kabupaten 
    set j_penduduk = cte.CountNim 
from cte 
where data_kabupaten.[kota/kabupaten] = cte.[kota/kabupaten] 

這裏使用公用表表達式,CTE,讓每一個[哥打/ kabupaten]值的不同罪名。然後從cte更新你的data_kabupaten表。

2

使用下面查詢。

UPDATE kp 
     SET kp.J_penduduk=t.cntNim 
    FROM data_kabupaten kp 
     JOIN master_data md 
     on kp.[kota/kabupaten] = md.[kota/kabupaten] 
     JOIN (SELECT kota_id,Count(distinct Nim) CntNim 
        FROM Kampus k 
        GROUP BY kota_id)t 
      On md.id_kota= t.kota_id 
+0

感謝它解決了我的問題,因爲我只能加入一個表使用內連接 – gufran