Мне нужно сравнить электронные письма из таблиц, и если они совпадают, мне нужно показать некоторые данные из третьей таблицы, и я пытаюсь сделать это через цикл while, который просматривает строку всех электронных писем и сравнивает их, и еслисовпадение должно получить данные из третьей таблицы
Я вставляю запрос из pastebin здесь: https://pastebin.com/zyjcJngf
Часть, где я хочу использовать цикл
select distinct Email,
CASE dbo.spValueToString((SELECT COUNT(*)
FROM tblEmailBlackList WHERE tblEmailBlackList.Email=LiveCampaign_SubscriberList_Email.Email AND tblEmailBlackList.PortalID>=-1))
WHEN 'Da' THEN
WHILE @vsi > 1
BEGIN
SET @testEmail = (SELECT LEFT(@resultCpy, CHARINDEX(',', @resultCpy) - 1)) --dobi prvi mail
SET @testEmail = (SELECT REPLACE(@testEmail, ' ', '')) --zbriše vse ' ' če obstajajo
SET @resultCpy = (SELECT SUBSTRING(@resultCpy, LEN(@testEmail) + 2, LEN(@resultCpy))) --odstani prvi mail
IF
@testEmail = Email
BREAK
ELSE
SET @vsi = @vsi - 1
END
SET @vsi = (SELECT LEN(@result) - LEN(REPLACE(@result, ',', '')) + 1)
SET @resultCpy = @result
(SELECT DISTINCT PortalLocalization.PortalName
FROM tblEmailBlackList
LEFT JOIN tblLiveCampaignSettings ON tblLiveCampaignSettings.ModuleID = tblEmailBlackList.ModuleID
LEFT JOIN PortalLocalization ON PortalLocalization.PortalID = tblEmailBlackList.PortalID AND PortalLocalization.CultureCode = 'sl-SI'
WHERE Email = @testEmail
AND tblEmailBlackList.PortalID >= 0
UNION
SELECT DISTINCT PortalLocalization.PortalName
FROM tblEmailBlackList
LEFT JOIN vw_TabModules ON vw_TabModules.ModuleID = tblEmailBlackList.ModuleID
LEFT JOIN PortalLocalization ON PortalLocalization.PortalID = vw_TabModules.PortalID AND PortalLocalization.CultureCode = 'sl-SI'
WHERE Email = @testEmail
AND tblEmailBlackList.PortalID = -1)
ELSE 'Ne' END
AS LocalBlockList
FROM LiveCampaign_SubscriberList_Email
Проблема, с которой я столкнулся, заключается в том, что я получаю ошибку, когда добавляю цикл в код, но если я запускаю цикл один, он работает.Я получил неправильный синтаксис рядом с WHILE, и не удалось связать многоэлементный идентификатор "LiveCampaign_SubscriberList_Email.Email".