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

Откуда:
Сообщений: 27
Помогите пожалуйста. Мне нужно вывести продавцов у которых в продажах было и молоко и колбаса. Я создал временную таблицу с ID продавцов, откуда будут выбираться продавцы по условию. Далее пишу:
Select #prod p
Inner join dbo.prodazi a on p.ID_prodavec=ID_prodavec
Where a.nazvanie in ('колбаса','молоко')
Этот код выводит всех продавцов у которых в продажах было либо колбаса либо молоко, а как сделать, чтобы было и колбаса и молоко?
21 дек 15, 11:00    [18587352]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
Glory
Member

Откуда:
Сообщений: 104751
slonyra
а как сделать, чтобы было и колбаса и молоко?

Условие И на tsql пишется как AND.
21 дек 15, 11:02    [18587364]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
slonyra
Member

Откуда:
Сообщений: 27
Glory,

А где именно "and" вставлять? Я его выставлял между 'молоко' и 'колбаса'. Выдает ошибку
21 дек 15, 11:06    [18587387]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
mishanya3624
Member

Откуда:
Сообщений: 796
slonyra,

omg^)
Where a.nazvanie = 'колбаса'   and  a.nazvanie ='молоко'
21 дек 15, 11:07    [18587390]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
Glory
Member

Откуда:
Сообщений: 104751
slonyra
Я его выставлял между 'молоко' и 'колбаса'.

Разумеется.

slonyra
А где именно "and" вставлять?

ДВА и более условий соединяются and. А не внутрь функции пихается and
21 дек 15, 11:08    [18587392]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
Glory
slonyra
а как сделать, чтобы было и колбаса и молоко?

Условие И на tsql пишется как AND.


"Игемон никогда не ошибается, но в данном случае он ошибся!" (с) Мастер и Маргарита

Следуя совету, ТС сделает примерно так (немного поправил синтаксис!)
Select * from #prod p
Inner join dbo.prodazi a on p.ID_prodavec=ID_prodavec
Where a.nazvanie = 'колбаса' AND a.nazvanie = 'молоко'

И ничего не получит!

Нужно что-то типа
Select * from #prod p
Inner join dbo.prodazi a1 on p.ID_prodavec=a1.ID_prodavec
Inner join dbo.prodazi a2 on p.ID_prodavec=a2.ID_prodavec
Where (a1.nazvanie = 'колбаса' AND a2.nazvanie = 'молоко')
OR (a2.nazvanie = 'колбаса' AND a1.nazvanie = 'молоко')
21 дек 15, 11:12    [18587416]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
mishanya3624
slonyra,

omg^)
Where a.nazvanie = 'колбаса'   and  a.nazvanie ='молоко'
Ай, маладца!
Одно и то же значение поля равно и колбасе и молоку!

Подсказка: надо использовать предикат EXISTS()
21 дек 15, 11:14    [18587426]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
Glory
Member

Откуда:
Сообщений: 104751
SQL2008
"Игемон никогда не ошибается, но в данном случае он ошибся!" (с) Мастер и Маргарита

Читать надо то, что пишет игемон, а не просматривать
игемон написал, что "И молоко и колбаса" на TSQL _соединяняются_ через AND
А не то что, нужно nazvanie нужно сравнивать с 'колбаса' AND 'молоко'
21 дек 15, 11:14    [18587429]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
Даже перестарался...
Последнее условие лишнее

Select * from #prod p
Inner join dbo.prodazi a1 on p.ID_prodavec=a1.ID_prodavec
Inner join dbo.prodazi a2 on p.ID_prodavec=a2.ID_prodavec
Where (a1.nazvanie = 'колбаса' AND a2.nazvanie = 'молоко') 
21 дек 15, 11:15    [18587431]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
Glory
SQL2008
"Игемон никогда не ошибается, но в данном случае он ошибся!" (с) Мастер и Маргарита

Читать надо то, что пишет игемон, а не просматривать
игемон написал, что "И молоко и колбаса" на TSQL _соединяняются_ через AND
А не то что, нужно nazvanie нужно сравнивать с 'колбаса' AND 'молоко'

Я имел в виду, что ваш совет воспримут буквально.
21 дек 15, 11:16    [18587435]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
o-o
Guest
SQL2008
Следуя совету, ТС сделает примерно так (немного поправил синтаксис!)

с чего бы вдруг?
можно же найти тех, у кого "молоко"
AND where exists "колбаса"
21 дек 15, 11:18    [18587446]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
o-o
SQL2008
Следуя совету, ТС сделает примерно так (немного поправил синтаксис!)

с чего бы вдруг?
можно же найти тех, у кого "молоко"
AND where exists "колбаса"


slonyra
А где именно "and" вставлять? Я его выставлял между 'молоко' и 'колбаса'. Выдает ошибку


Человек не знает куда AND поставить, а мы ему еще про exists расскажем!
Давайте предложим через CTE вариант
21 дек 15, 11:22    [18587461]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
Glory
Member

Откуда:
Сообщений: 104751
SQL2008
Человек не знает куда AND поставить, а мы ему еще про exists расскажем!

И что теперь ? Начать с азов SQL ?
21 дек 15, 11:23    [18587469]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
mishanya3624
Member

Откуда:
Сообщений: 796
iap
mishanya3624
slonyra,

omg^)
Where a.nazvanie = 'колбаса'   and  a.nazvanie ='молоко'
Ай, маладца!
Одно и то же значение поля равно и колбасе и молоку!

Подсказка: надо использовать предикат EXISTS()


просто синтаксис показал, а дальше сам додуматься должен был, что ему надо и как)
21 дек 15, 11:40    [18587573]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
iap
mishanya3624
slonyra,

omg^)
Where a.nazvanie = 'колбаса'   and  a.nazvanie ='молоко'
Ай, маладца!
Одно и то же значение поля равно и колбасе и молоку!

Подсказка: надо использовать предикат EXISTS()


Так бывает, когда сильно кушать хочецца
21 дек 15, 12:45    [18587977]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
ГуЗы
Guest
Winnipuh
Так бывает, когда сильно кушать хочецца

off: никаких советов до обеда!
21 дек 15, 13:55    [18588376]     Ответить | Цитировать Сообщить модератору
 Re: Sql server  [new]
MSSQLAndDotNet
Member

Откуда:
Сообщений: 10398
LOWER()
21 дек 15, 14:20    [18588545]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить