Вывод в формате HTML для задания агента SQL Server - PullRequest
0 голосов
/ 31 октября 2019

Возникла проблема с форматированием вывода запроса SQL Server, который является частью задания агента SQL Server. Задание «Мой агент» содержит следующий код в единственном «шаге»:

DECLARE @xml NVARCHAR(MAX)
DECLARE @body NVARCHAR(MAX)

SET @xml = CAST((SELECT (CAST(getdate() as DATE)) as 'td'
    ,''
    ,M.[Serial Number] as 'td'
    , ''
    ,case MR.MTUID 
        when 21180200 then round(ceiling((cast(MR.RegisterRead as float)/10)),0,1)
        when 47374728 then round(ceiling((cast(MR.RegisterRead as float))),0,1) 
     end as 'td'
  FROM [StarDatabase].[dbo].[Account MTU Meter Xref] MX
  INNER JOIN Meters M on
  M.[Meter ID] = mx.[Meter ID]
  INNER JOIN NonScaledReads MR on MR.MTUID = MX.[MTU ID]
  WHERE MX.[MTU ID] IN (21180200, 47374728)
  and MR.ReadingTime >= cast(cast(getdate() as date) as datetime) + cast('08:00' as datetime)
  and MR.ReadingTime <= cast(cast(getdate() as date) as datetime) + cast('08:59' as datetime)
  order by MR.ReadingTime
  FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))

SET @body ='<html><body><H3>Meter Readings at 04:00 AM</H3>
<table border = 1> 
<tr>
<th> Date </th> <th> Meter Serial # </th> <th> Reading </th></tr>'    

SET @body = @body + @xml +'</table></body></html>'

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'email',
@recipients = 'xxx@abc.xyz',
@subject = '4:00 AM Meter Reads',
@body = @body,
@body_format ='HTML'

Вывод моей электронной почты выглядит как прикрепленное изображение, и я пытаюсь найти способ сделать последний столбец целым числом безэкспоненциальная запись. Я должен выполнить все эти операции «cast» и «round» в выражении CASE, потому что значение хранится в столбце varchar.

Partial napshot of email body

В этом случае значения в последнем столбце должны читаться как 9611174 и 7289261. Вывод в текстовом файле или в таблице результатов запроса отображается так, как я хочу,Однако итоговое письмо с содержимым HTML имеет экспоненциальную запись.

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