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

Откуда:
Сообщений: 265
Подскажите как сделать так что бы в одной таблице EstimateWorkgroups нашло сразу одновременно две записи W.ActorID = 132001 и W.ActorID = 217

SELECT *
FROM _EstimateHeads E, EstimateWorkgroups W, DictStates D
WHERE E.Estimate = W.EstimateID AND W.EstimateID = D.ID AND
EXISTS(SELECT E2.ActorID FROM EstimateWorkgroups E2 WHERE E2.EstimateID = W.EstimateID and W.ActorID = 132001) AND 
EXISTS(SELECT E1.ActorID FROM EstimateWorkgroups E1 WHERE W.ActorID = 217 AND E1.EstimateID = W.EstimateID)
24 мар 16, 20:21    [18975169]     Ответить | Цитировать Сообщить модератору
 Re: Нахождение сразу двух записей  [new]
Col
Member

Откуда: Торонто
Сообщений: 180
Pabl0,

Ну так и напишите
where W.ActorID in ('217', '132001')
24 мар 16, 20:23    [18975174]     Ответить | Цитировать Сообщить модератору
 Re: Нахождение сразу двух записей  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
SELECT *
FROM _EstimateHeads E
JOIN EstimateWorkgroups W ON E.Estimate = W.EstimateID
JOIN DictStates D ON W.EstimateID = D.id
WHERE W.ActorID IN (132001, 217)
24 мар 16, 20:24    [18975176]     Ответить | Цитировать Сообщить модератору
 Re: Нахождение сразу двух записей  [new]
Pabl0
Member

Откуда:
Сообщений: 265
AlanDenton,
Нет не правильно, он будет выбирать или это или это, а мне надо что бы сразу оба были одновременно
24 мар 16, 20:36    [18975198]     Ответить | Цитировать Сообщить модератору
 Re: Нахождение сразу двух записей  [new]
Pabl0
Member

Откуда:
Сообщений: 265
Правильный ответ:

Select * 
From _EstimateHeads E 
Where exists (Select * from EstimateWorkGroups W Where W.EstimateID=E.Estimate and W.ActorID = 132001) 
And 
exists (Select * from EstimateWorkGroups W Where W.EstimateID=E.Estimate and W.ActorID=217)
24 мар 16, 20:42    [18975217]     Ответить | Цитировать Сообщить модератору
 Re: Нахождение сразу двух записей  [new]
Pabl0
Member

Откуда:
Сообщений: 265
Ребят, а не подскажите как сделать так что бы запись ActorID=132001 удалилась из всех записей где они есть вместе?


Delete from EstimateWorkGroups 
FROM EstimateWorkGroups W1
where W1.ActorID=132001 
And exists (Select * from EstimateWorkGroups W2 Where W1.EstimateID =W2.EstimateID and W2.ActorID=217)


Написал вот так, но удалило обоих :(
24 мар 16, 21:07    [18975288]     Ответить | Цитировать Сообщить модератору
 Re: Нахождение сразу двух записей  [new]
Pabl0
Member

Откуда:
Сообщений: 265
Удаление

Delete from EstimateWorkGroups 
where ActorID IN (8887000, 132001,8522000,8930000) 
And exists (Select * from EstimateWorkGroups W2 Where EstimateID =W2.EstimateID and W2.ActorID=217)
24 мар 16, 21:14    [18975308]     Ответить | Цитировать Сообщить модератору
 Re: Нахождение сразу двух записей  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Pabl0
Нет не правильно, он будет выбирать или это или это, а мне надо что бы сразу оба были одновременно

Если Вы заранее знаете ответ то зачем спрашивать? Попросили найти две записи... и тут же говорите что не правильно :) не буду с Вами спорить.
25 мар 16, 10:18    [18976579]     Ответить | Цитировать Сообщить модератору
 Re: Нахождение сразу двух записей  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
Пятничный троль детектед.
25 мар 16, 12:11    [18977220]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить