2012-03-30 18 views
0

私はフィールドがId1,ID2,Points1,Points2のテーブルを持っています。私は列がある別の表を持っています。Id1Id2Address1address2city 1、、state1state2です。 pointsAPointsBの列を更新する必要があります。これは、2番目の表の列のうちどれぐらいが満たされているかに基づいて、NULLがありません。例別のテーブルのカウンタに基づいて列を更新しますか?

表1

ID1 ID2 Points 1 Points2 
1  2  2   0 

表2

ID1 ID2 Address1 address2 city 1 city2 state1 state2. 
1 2 a1  null  null null s1  null 

どのように私は、SQL Server 2008でこれを達成することができますか?

おかげ

答えて

1
UPDATE t1 
SET 
    Points1 = t2.Points1, 
    Points2 = t2.Points2 
FROM 
    Table1 t1 JOIN (
    SELECT 
     ID1, 
     ID2, 
     CASE WHEN Address1 IS NULL THEN 0 ELSE 1 END + 
     CASE WHEN City1 IS NULL THEN 0 ELSE 1 END + 
     CASE WHEN State1 IS NULL THEN 0 ELSE 1 END AS Points1, 
     CASE WHEN Address2 IS NULL THEN 0 ELSE 1 END + 
     CASE WHEN City2 IS NULL THEN 0 ELSE 1 END + 
     CASE WHEN State2 IS NULL THEN 0 ELSE 1 END AS Points2, 
    FROM Table2 
) t2 ON t1.ID1 = t2.ID1 AND t1.ID2 = t2.ID2 
+0

おかげで私CHEERSためlot..That作品!! – user1304271

関連する問題