Goran Bibic Ответов: 2

Выберите из таблицы элементов где id из списка


I have multiple value


Но есть ошибка моего кода

Пожалуйста помочь

 I have error in second line please help
 
Msg 116, Level 16, State 1, Line 3
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS. 


Что я уже пробовал:

SELECT * FROM DBO.mp_racun_roba  WHERE id_fakture=(select * from mp_racun_lista where datum=CONVERT(date,GETDATE()))  

2 Ответов

Рейтинг:
5

OriginalGriff

Ваш внутренний запрос SELECT возвращает более одного значения - поэтому SQL справедливо жалуется, что он не может проверить несколько значений в столбце с помощью теста равенства.

Если вы пытаетесь получить определенную строку, которая соответствует одному значению идентификатора, то вам нужно уточнить внутренний запрос до тех пор, пока он не будет возвращать только одно значение.

Если вы пытаетесь вернуть несколько строк с разными значениями идентификаторов для одних и тех же данных, то используйте IN вместо теста на равенство:

SELECT * FROM DBO.mp_racun_roba WHERE id_fakture IN (SELECT IDColumnName FROM mp_racun_lista WHERE datum=CONVERT(date,GETDATE()))


Goran Bibic

Спасибо

OriginalGriff

Всегда пожалуйста!

Рейтинг:
0

RickZeeland

Подзапрос должен возвращать только одно значение, которое вы можете использовать ВЕРХНИЙ для этого: SQL SELECT TOP, LIMIT, ROWNUM[^]


Afzaal Ahmad Zeeshan

5ед. Хорошая альтернатива, если OP должен использовать одно значение в качестве сравнения.