SQL Server - вложенный запрос - PullRequest
0 голосов
/ 10 ноября 2009

У меня есть запрос, который я не знаю, как написать. Я не эксперт по SQL, и это довольно неприятно. Я надеюсь, что кто-то здесь может помочь мне с этим.

У меня есть таблица «Участники», в которой есть список имен пользователей моего веб-сайта. Мне нужно получить список пользователей, которые принадлежат одному или нескольким подразделениям в моей компании, а также одному или нескольким менеджерам. Конкретные подразделения и менеджеры выбираются пользователем на моем веб-сайте. У меня есть список менеджеров и отделов, которые они выбрали. Я также разобрал их в список через запятую. Вот сводка информации таблицы, которую я пытаюсь связать вместе:

Пользователи

  • UserName
  • StoreID

магазин

  • StoreID
  • PostalCode

Отдел

  • PostalCode
  • ManagerID

Менеджер

  • ManagerID
  • ManagerName

Как получить список участников на основе списка регионов и менеджеров, которые выбирает пользователь? Искренне благодарю за помощь!

Ответы [ 2 ]

4 голосов
/ 10 ноября 2009
Select Members.UserName
From Members
    Join Store On Members.StoreID = Store.StoreID
    Join Division On Store.PostalCode = Division.PostalCode
    Join Manager On Division.ManagerID = Manager.ManagerID
Where Division.PostalCode In (12345, 12346)
    And Manager.ManagerID In (1, 2, 3, 4) 
0 голосов
/ 10 ноября 2009

Вы говорите, что у вас есть список руководителей и подразделений. У вас есть ManagerID и PostalCode? Если это так, вам не нужно присоединяться к таблице менеджера, поскольку оба они находятся в таблице деления.

SELECT
    Members.UserName
FROM
    Members
    INNER JOIN
    Store
    ON
        Members.StoreID = Store.StoreID
    INNER JOIN
    Division
    ON
        Store.PostalCode = Division.PostalCode
WHERE
    Division.PostalCode IN (Use comma delimited postal codes here)
    AND
    Division.ManagerID IN (Use comma delimited manager ids here)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...