Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Пожалуйста помогите с запросом  [new]
MADAlien
Member

Откуда:
Сообщений: 4
Уже который час бьюсь, не могу сделать

Картинка с другого сайта.

Нужно создать запрос на вывод списка клиентов, у которых есть счет в филиале, где работает его однофамилец (Такое же ФИО, сам себе человек однофамильцем не является, а сотрудники могут быть и клиентами)
3 фев 12, 03:37    [12023499]     Ответить | Цитировать Сообщить модератору
 Re: Пожалуйста помогите с запросом  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
MADAlien, сессия пришла?
3 фев 12, 09:43    [12023943]     Ответить | Цитировать Сообщить модератору
 Re: Пожалуйста помогите с запросом  [new]
MADAlien
Member

Откуда:
Сообщений: 4
Да. Сегодня сдать нужно, а последний запрос не получается, до сих пор нормально не работает.
3 фев 12, 10:15    [12024104]     Ответить | Цитировать Сообщить модератору
 Re: Пожалуйста помогите с запросом  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
MADAlien
Да. Сегодня сдать нужно, а последний запрос не получается, до сих пор нормально не работает.

Это печально. Но студенты должны учиться самостоятельно, иначе какой толк в такой учебе?
Но всеже, что именно у вас не получается. Покажите неработающий запрос.
3 фев 12, 10:30    [12024216]     Ответить | Цитировать Сообщить модератору
 Re: Пожалуйста помогите с запросом  [new]
MADAlien
Member

Откуда:
Сообщений: 4
Сделал работающий, почти автоматически, но сказали, такой не подходит:
SELECT     dbo.Customers.[Customer name], dbo.Account.Branch, dbo.Workers.[Worker Name]
FROM         dbo.Account INNER JOIN
                      dbo.Branch ON dbo.Account.Branch = dbo.Branch.[Name of branch] INNER JOIN
                      dbo.Customers ON dbo.Account.[Customer passport] = dbo.Customers.[Customer passport] INNER JOIN
                      dbo.Workers ON dbo.Branch.[Name of branch] = dbo.Workers.Branch AND dbo.Customers.[Customer name] = dbo.Workers.[Worker Name] AND 
                      dbo.Account.Branch = dbo.Workers.Branch
3 фев 12, 12:39    [12025456]     Ответить | Цитировать Сообщить модератору
 Re: Пожалуйста помогите с запросом  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
MADAlien
Сделал работающий, почти автоматически, но сказали, такой не подходит:
SELECT     dbo.Customers.[Customer name], dbo.Account.Branch, dbo.Workers.[Worker Name]
FROM         dbo.Account INNER JOIN
                      dbo.Branch ON dbo.Account.Branch = dbo.Branch.[Name of branch] INNER JOIN
                      dbo.Customers ON dbo.Account.[Customer passport] = dbo.Customers.[Customer passport] INNER JOIN
                      dbo.Workers ON dbo.Branch.[Name of branch] = dbo.Workers.Branch AND dbo.Customers.[Customer name] = dbo.Workers.[Worker Name] AND 
                      dbo.Account.Branch = dbo.Workers.Branch
Ага, не подходит. Не соблюдено условие "Такое же ФИО, сам себе человек однофамильцем не является, а сотрудники могут быть и клиентами".
3 фев 12, 13:26    [12026008]     Ответить | Цитировать Сообщить модератору
 Re: Пожалуйста помогите с запросом  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
+ не учтена возможность наличия нескольких сотрудников-однофамильцев.
3 фев 12, 13:42    [12026187]     Ответить | Цитировать Сообщить модератору
 Re: Пожалуйста помогите с запросом  [new]
MADAlien
Member

Откуда:
Сообщений: 4
WHERE     (NOT (dbo.Account.[Customer passport] = dbo.Workers.[Worker Passport]))

Не?
3 фев 12, 13:47    [12026244]     Ответить | Цитировать Сообщить модератору
 Re: Пожалуйста помогите с запросом  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
select
 a.Branch,
 c.[Customer name]
from
 dbo.Account a join
 dbo.Customers c on c.[Customer passport] = a.[Customer passport]
where
 exists(select * from dbo.Workers where Branch = a.Branch and [Worker name] = c.[Customer name] and [Worker passport] <> c.[Customer passport]);
3 фев 12, 13:54    [12026312]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить