Какой тип соединения можно использовать для воспроизведения этих результатов - PullRequest
0 голосов
/ 21 декабря 2009

У меня есть следующий вид, который содержит эти данные

ActivityRecId RegionRecId IsExcluded
1             null        1
2             null        1
3             1           1
3             2           1
4             1           1
5             null        0

Я хотел бы присоединить таблицу регионов к представлению выше, чтобы получить следующие записи.

ActivityRecId RegionRecId IsExcluded
1             null        1
2             null        1
3             1           1
3             2           1
3             3           0
3             4           0
4             1           1
4             2           0
4             3           0
4             4           0
5             null        0

Таблица регионов имеет следующие столбцы:

  • RegionRecId
  • RegionName

Любые предложения. Дайте мне знать, если вам нужна какая-либо другая информация.

--------------------- CORRECT QUESTION ------------------------
ActivityRecId RegionRecId IsExcluded
    1             null        1
    2             null        1
    3             1           1
    3             2           1
    3             3           0
    3             4           0
    4             1           1
    4             2           0
    4             3           0
    4             4           0
    5             1           0
    5             2           0
    5             3           0
    5             4           0

Если это облегчает задание 1 и 2, можно также перечислить все регионы.

Спасибо

Ответы [ 2 ]

0 голосов
/ 21 декабря 2009

У меня нет SQL Server под рукой, чтобы проверить это, но что-то вроде

select  *
from    myView

union

select  myView.ActivityRecId,
        region.RegionRecId,
        0 as IsExcluded
from    myView cross join region
where   (myView.RegionRecId is not null or myView.IsExcluded = 0)
        and not exists (
            select  null
            from    myView
            where   myView.RegionRecId = region.RegionRecId
        )

будь что хочешь?

0 голосов
/ 21 декабря 2009

Здесь отличный справочник для поиска объединений. Я думаю, что вам нужно левое внешнее соединение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...