Обновить столбец на основе счетчика из другой таблицы? - PullRequest
0 голосов
/ 31 марта 2012

У меня есть таблица поля: Id1, ID2, Points1, Points2. У меня есть другая таблица, в которой есть столбцы Id1, Id2, Address1, address2, city 1, city2, state1, state2. Я должен обновить столбцы pointsA и PointsB в зависимости от того, сколько столбцов во второй таблице заполнено, что означает, что они не имеют нулевого значения. Ex

Таблица 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 Ответ

1 голос
/ 31 марта 2012
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...