2015-10-28 1 views
0

Это запрос, я пытаюсь запустить:Выполнение запросов в команде sp_send_dbmail - проблема с форматированием? Нужно объявить базу данных?

Select COUNT(dbo.SO_Header.Sales_Order) AS NumberOfSalesOrders 
from dbo.SO_Header 
where dbo.SO_Header.Order_Taken_By is NULL 
and dbo.SO_Header.Status = 'Open' 

Когда я запускаю его, он дает мне правильный результат. Однако, когда я пытаюсь использовать его в sp_send_dbmail, я получаю сообщение об ошибке. Вот мой запрос:

USE msdb 
GO 
EXEC sp_send_dbmail @profile_name = 'Default Profile', 
@recipients = '[email protected]', 
@subject = 'SQLBot Message #JBUpdate', 
@query = 'SELECT COUNT(SO_Header.Sales_Order) AS NumberOfSalesOrders 
      from SO_Header 
      where SO_Header.Order_Taken_By is NULL 
      and SO_Header.Status = 'Open'', 
@body = 'Here is the number of Open Sales Orders with no Order Taken By', 

Это ошибка, я получаю:

Msg 102, Level 15, State 1, Line 7 
Incorrect syntax near ''. 

мне нужно определить базу данных, чтобы выбрать SO_Header от делать? (Это отличается от msdb). Хотя, я думал, что запросы выполняются отдельно от команды sp_send_dbmail. Я довольно новичок в SQL, поэтому, пожалуйста, несите меня, если это очень простая проблема для решения.

Я ищу, чтобы результаты:

NumberOfSalesOrders 
344 

встроен в тело письма я пытаюсь отправить.

Большая картинка здесь, я пытаюсь отправить ее по электронной почте на Slack Channel через IFTTT, чтобы предоставлять разнообразные ежедневные обновления. Этот шаг я смог проверить и сделать работу, которая довольно гладкая. Теперь мне просто нужно сделать некоторые фактические результаты ...

Спасибо за помощь.

Спасибо!

ответ

0

Нашел ответ на другом форуме. Два решения ...

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

  2. Установите запрос в виде строки, как этот

'SELECT COUNT (SO_Header.Sales_Order) AS NumberOfSalesOrders из SO_Header где SO_Header.Order_Taken_By является NULL и SO_Header.Status =' + '' '' + 'Open' + '' ''

Также ...

Если dbo.SO_Header не в MSDB (и это не должно быть); исправьте свой скрипт, чтобы исключить бит USD msdb и присвоить sp_spend_dbmail как EXEC msdb.dbo.sp_spend_dbmail.

 Смежные вопросы

  • Нет связанных вопросов^_^