Может ли кто-нибудь помочь с вложенным запросом, который я использую в форме VB, поскольку я борется.SQL Вложенный запрос, поиск по нескольким полям
Итак, первая часть запроса заключается в следующем.
select
[incidentid] as incidentid,
('Incident' &' '&[incidentID] &' '&'has a new containment') as incisearch
from
containment
where
transtime > @logout
Это прекрасно работает и вернет правильную информацию. Я бы хотел выполнить поиск по другому параметру, который равен @username
.
Эта информация содержится в таблице под названием incident
и @username
В параметре можно найти либо в incidentowner
, purchasingmember
или additionalmember
полей.
В основном я хочу запрос возвращать результаты, если защитная оболочка была введена после того, как пользователь, который может быть найден в incidentowner
, purchasingmember
или additionalmember
имеет последний вход в системе.
Так вот что я пытался до сих пор:
select
[incidentid] as incidentid,
('Incident' &' '&[incidentID] &' '&'has a new containment') as incisearch
from
containment
where
transtime > @logout and
purchasingmember in
(select
[incidentid]
from
incident
where
purchasingmember = @username)
Я сначала подумал, я хотел бы попробовать это просто поиск одного поля, а не несколько, это возвращает ошибку
Нет значение, заданное для одного или нескольких требуемых параметров.
Затем я также попытался найти несколько полей одновременно, используя следующую
select
[incidentid] as incidentid,
('Incident' &' '&[incidentID] &' '&'has a new containment') as incisearch
from
containment
where
transtime > @logout and
@username in
(select
[incidentid]
from
incident
where
(incidentowner = @username) or
(purchasingmember = @username) or
(additionalmember = @username))
Этот запрос не обязательно, но он не дал никаких результатов, и я ожидаю, чтобы вернуться ровно один. Так что этот запрос не нарушен. Я просто не думаю, что я сказал ему, что искать правильно. Может ли кто-нибудь помочь?
От получения комментариев ниже я также внесены изменения, чтобы попробовать следующий код, но он все еще не работает, как предполагалось
select
[incidentid] as incidentid,
('Incident' &' '&[incidentID] &' '&'has a new containment') as incisearch
from
containment
where
transtime > @logout and
incidentid in
(select
[incidentid]
from
incident
where
(incidentowner = @username) or
(purchasingmember = @username) or
(additionalmember = @username))
вы не должны делать что-то вроде '... @INCIDENTID в (выберите [indientid] от инцидента, когда ...'? вы Searchin имя пользователя в списке incidentid! –
вы уверены о вашем предложении ** @ username ** in (...)? вы проверяете параметр @username на IN Que ry –
@LS_dev Я добавил новый запрос, надеясь исправить эту ошибку, но он все еще не возвращает результат, как я ожидаю, можете ли вы сказать мне, где я ошибаюсь? ни в коем случае не выполняется запрос, проверяющий, что инцидент в сдерживании совпадает с инцидентом в инциденте. – Boneyt