Вернуть конкретные значения из нескольких операторов выбора в SQL Server - PullRequest
0 голосов
/ 10 декабря 2018

У меня была проблема с выбором внутри выбора, чтобы получить конкретный результат, но мне удалось обойти эту проблему, только чтобы остановиться с другой.

У меня есть код, который похож наэто:

IF EXISTS (SELECT * 
           FROM   bo 
           WHERE  nmdos LIKE '%preço%' 
                  AND datafinal = Dateadd(day, -6, CONVERT(DATE, Getdate()))) 
  EXEC msdb.dbo.Sp_send_dbmail 
    @profile_name = 'SQL Server - 2017', 
    @recipients = 'mail@mail.com', 
    @query = 'select * from bo     where nmdos like %preço%     and datafinal = DATEADD(day, -6, convert(date, GETDATE()))', 
    @subject = 'Encerramento Dossiert', 
    @attach_query_result_as_file = 1; 
ELSE 
  PRINT '0' 

полученная ошибка говорит следующее:

Сообщение 22050, уровень 16, состояние 1, строка 0 Не удалось инициализировать библиотеку sqlcmd с номером ошибки -2147467259.

как я могу заставить это работать, где я иду не так?

1 Ответ

0 голосов
/ 10 декабря 2018

Вы пропустили кавычку в переменной @query

@query = 'select * from bo where nmdos like %preço% and datafinal = DATEADD(day, -6,convert(date, GETDATE()))'

Вам нужно это

@query = 'select * from bo where nmdos like'+' ''%preço%'' ' +'and datafinal = DATEADD(day, -6, convert(date, GETDATE()))' 

Вы можете увидеть разницу с этим запросом:

 DECLARE @query NVARCHAR(MAX)
SET @query = 'select * from bo where nmdos like'+' ''%preço%'' ' +'and datafinal = DATEADD(day, -6, convert(date, GETDATE()))' 

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