0

SQL クエリの結果を保持するテーブルを作成し、定期的に電子メールを送信することで、レポートを生成できました。現在、それらのいくつかを 1 つに結合する必要があり、それを機能させるのに苦労しています。テーブルが 1 つでも機能しますが、テーブルが 2 つあるとメールが空白になります。

 DECLARE @TITLE NVARCHAR(MAX)
 DECLARE @BODY NVARCHAR(MAX)
 DECLARE @TITLE2 NVARCHAR(MAX)
 DECLARE @BODY2 NVARCHAR(MAX)
 DECLARE @SECTABLE NVARCHAR(MAX)

 SET @TITLE =CAST((SELECT DISTINCT A.CLIENTPROJ as 'td','', A.CLIENTKEY as 'td','', 
 A.APIBOX   as 'td','', A.ID as 'td', '', 
 COUNT(B.QUERYTERMS) as 'td', ''
 FROM Clients AS A INNER JOIN QueryData AS B ON A.clientKey = B.clientKey 
 WHERE A.Id='0001000'
  group by A.clientProj, A.clientkey, A.APIBox, A.ID order by 
 COUNT(B.QUERYTERMS) desc
 FOR XML PATH ('tr'), ELEMENTS XSINIL) AS NVARCHAR(MAX))

 SET @BODY = '<html><body><H4>QUERY ACTIVITY</H4>
 <H5>CLIENT ID - 0001000</H5>
 <table border = 2>
 <tr>
 <th> CLIENT NAME </th> <th> CLIENT KEY </th> <th> API FEED </th> 
 <th> CLIENT ID </th> <th> TOTAL QUERIES </th></tr>'

 SET @BODY = @BODY + @TITLE + '</TABLE></BODY></HTML>' 
EXEC msdb.dbo.sp_send_dbmail @profile_name='ME Admin',
  @recipients = 'YAHOO@WOOHOO.com',
  @subject = 'CLIENT QUERY REPORT',
  @body =   @BODY,
  @body_format = 'HTML';

次の 2 番目のクエリを含める方法と場所がわかりません。

  SET @TITLE2 =CAST((SELECT DISTINCT B.CLIENTPROJ as 'td','', 
  B.CLIENTKEY as 'td','', B.apiBOX as 'td','', B.ID as 'td', '', 
  COUNT(A.QUERYTERMS) as 'td', ''
  FROM QUERYDATA AS A RIGHT JOIN CLIENTS AS B ON 
  A.clientKey = B.clientKey WHERE A.Id='0001000' AND A.clientKey 
   IS NULL
  group by B.clientProj, B.clientkey, B.APIBox, B.ID order by 
  COUNT(A.QUERYTERMS) desc
  FOR XML PATH ('tr'), ELEMENTS XSINIL) AS NVARCHAR(MAX))

  SET @BODY2 = '<html><body><H4>QUERY INACTIVITY</H4>
  <H5>CLIENT ID - 0001000</H5>
  <table border = 2>
   <tr>
  <th> CLIENT NAME </th> <th> CLIENT KEY </th> <th> API FEED</th> 
  <th>CLIENT ID </th> <th> TOTAL QUERIES </th></tr>'

メールの本文に両方のテーブルを表示する必要がありますが、これを統合する方法がわかりません。アイデアをいただければ幸いです。

4

1 に答える 1

0

最終設定ステートメント SET @TITLE = .... SET @BODY = 'QUERY ACTIVITY ....'

SET @TITLE2 = ...//SECOND TABLE CONTENTS
SET @BODY2 =  '<html><body><H4>QUERY INACTIVITY</H4>
               <H5>....</tr>'
SET @BODY2 = @BODY + @BODY2 + @TITLE2 + '</TABLE></BODY></HTML>' 
于 2013-09-19T16:37:23.677 に答える