Это недопустимо, если подзапрос следует =,! =, <, <=,>,> = Или когда подзапрос используется как выражение в SQL - PullRequest
0 голосов
/ 09 февраля 2019

Нужен счетчик подзапроса

- DM достигнут раньше, но снова НЕ достигнут снова за последние 60 дней - VIP

SET @MainQuery = 'SET @DMNotReachedAgainForLastSixtyDaysVIP = (SELECT COUNT(DISTINCT SMSCH.Cgvak_Comh_Icode) 
FROM Cgvak_Sms_Company_Header SMSCH 
JOIN Cgvak_Sms_Company_Detail SMSCD ON SMSCD.Cgvak_Comd_Comh_Icode = SMSCH.Cgvak_Comh_Icode 
JOIN [dbo].[Cgvak_Sms_User_Master] SMSUM ON SMSUM.Cgvak_User_Icode = SMSCH.Cgvak_Comh_AssignBDE_Icode
WHERE (SMSCD.Cgvak_Comd_Call_date >= DATEADD(DAY, -60, GETDATE())) AND SMSCD.Cgvak_Comd_SpoketoStatus = ''N''  AND ' + RTRIM(@DynamicQuery) + ' 
AND SMSCD.Cgvak_Comd_Comh_Icode IN (SELECT DISTINCT CSCH.Cgvak_Comh_Icode FROM Cgvak_Sms_Company_Header CSCH 
JOIN Cgvak_Sms_Company_Detail CSCD ON CSCD.Cgvak_Comd_Comh_Icode = CSCH.Cgvak_Comh_Icode 
WHERE  CSCH.Cgvak_Comh_VIPAC = ''Y'' AND CSCD.Cgvak_Comd_Call_date <= DATEADD(DAY, -60, GETDATE()) 
AND CSCH.Cgvak_Comh_DMSpokeStatus = 1 AND CSCH.Cgvak_Comh_Icode = CSCD.Cgvak_Comd_Comh_Icode))

EXECUTE sp_executesql @MainQuery , N'@DMNotReachedAgainForLastSixtyDaysVIP BIGINT OUTPUT', @DMNotReachedAgainForLastSixtyDaysVIP = @DMNotReachedAgainForLastSixtyDaysVIP OUTPUT

Я передаю динамические запросы с фронтаконец этому SP.Но это показывает, что Subquery вернул более 1 значения.Это недопустимо, если подзапрос следует =,! =, <, <=,>,> = Или когда подзапрос используется в качестве выражения.

1 Ответ

0 голосов
/ 11 марта 2019

Я не вижу проблем в размещенном вами коде.Проблема должна быть в RTRIM(@DynamicQuery).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...