Присвойте полю значение из другой таблицы на основе значения другого поля - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть таблица с четырьмя столбцами: № счета, № карты, CardNameType и Имя владельца карты.Поле CardNameType будет определять, кто является владельцем карты.Если оно равно 0, я хочу получить имя из таблицы ОТЦА;если это 1, возьмите его со стола МАТЕРИ;и если это 2, получить его из таблицы РЕБЕНОК.У каждой таблицы есть первичный ключ учетной записи №, и у каждой учетной записи может быть несколько карточек.

Как я могу это сделать?Будет ли работать утверждение CASE или как это будет оптимальным образом?

РЕДАКТИРОВАТЬ: Извините, я неверно истолковал данные.Решение, которое вы дали мне, я не верю, сработает.Имена отца и матери появляются в той же таблице.Если, например, у ОТЦА ИЛИ МАТЕРИ есть карточка, в таблице появятся две записи (одна для отца и одна для матери). Однако, если карточка предназначена для РЕБЕНКА, ТОГДА она находится в другой таблице.Мне нужен способ сделать так, чтобы я мог найти только мать, отца или ребенка.

1 Ответ

2 голосов
/ 06 февраля 2012

Да, здесь звучит так, как будто лучше использовать регистр.

, таких как:

SELECT CASE c.CardNameType
            WHEN 0 THEN f.Name
            WHEN 1 THEN m.Name
            WHEN 2 THEN c.Name
       END AS [Card Owner]
FROM
    Card c
INNER JOIN
    Father f ON f.Account# = c.Account#
.
.
.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...