Tsql 2个查询-1个SQL Server代理作业

Tsql 2个查询-1个SQL Server代理作业,tsql,Tsql,我有以下运行的T-SQL作业-我需要将发票和信用票据拉入一封电子邮件-但是,在两个单独的表中: DECLARE @bodyMsg nvarchar(max) DECLARE @subject nvarchar(max) DECLARE @tableHTML nvarchar(max) DECLARE @tableHTML2 nvarchar(max) SET @subject = 'Invoices & Credits in Past Week' SET @tableHTML =

我有以下运行的T-SQL作业-我需要将发票和信用票据拉入一封电子邮件-但是,在两个单独的表中:

DECLARE @bodyMsg nvarchar(max)
DECLARE @subject nvarchar(max)
DECLARE @tableHTML nvarchar(max)
DECLARE @tableHTML2 nvarchar(max)

SET @subject = 'Invoices & Credits in Past Week'

SET @tableHTML = 
N'<style type="text/css">
#box-table
{
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
font-size: 12px;
text-align: center;
border-collapse: collapse;
border-top: 7px solid #9baff1;
border-bottom: 7px solid #9baff1;
border-spacing: 10px;
}
#box-table th
{
font-size: 13px;
font-weight: normal;
background: #b9c9fe;
border-right: 2px solid #9baff1;
border-left: 2px solid #9baff1;
border-bottom: 2px solid #9baff1;
color: #039;
border-spacing: 10px;
padding: 15px;
}
#box-table td
{
border-right: 1px solid #aabcfe;
border-left: 1px solid #aabcfe;
border-bottom: 1px solid #aabcfe;
color: #669;
border-spacing: 10px;
padding: 15px;
}
tr:nth-child(odd) { background-color:#eee; }
tr:nth-child(even) { background-color:#fff; } 
</style>'+ 
N'<H3><font color="Red">Invoices from Past week</H3>' +
N'<table id="box-table" >' +
N'<tr>
<th>Invoice #</th>
<th>Date</th>
<th>Account #</th>
<th>Customer</th>
<th>ex GST</th>
</tr>' +
CAST ( ( 

SELECT
td = OINV.DocNum ,'',
td =CONVERT(VARCHAR(8), OINV.DocDate, 3) ,'',
td = OINV.CardCode ,'',
td = OINV.CardName ,'',
td = '$' + CONVERT(varchar, CONVERT(money, OINV.DocTotal-OINV.VatSum-OINV.TotalExpns), 1) 
FROM OINV INNER JOIN OSLP ON OINV.SlpCode = OSLP.SlpCode 
WHERE OSLP.SlpName = 'SALES REP' and OINV.DocDate > DATEADD(DAY, -7, GETDATE())
FOR XML PATH('tr'), TYPE 
) AS NVARCHAR(MAX) )

@tableHTML2 = 
N'<style type="text/css">
#box-table
{
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
font-size: 12px;
text-align: center;
border-collapse: collapse;
border-top: 7px solid #9baff1;
border-bottom: 7px solid #9baff1;
border-spacing: 10px;
}
#box-table th
{
font-size: 13px;
font-weight: normal;
background: #b9c9fe;
border-right: 2px solid #9baff1;
border-left: 2px solid #9baff1;
border-bottom: 2px solid #9baff1;
color: #039;
border-spacing: 10px;
padding: 15px;
}
#box-table td
{
border-right: 1px solid #aabcfe;
border-left: 1px solid #aabcfe;
border-bottom: 1px solid #aabcfe;
color: #669;
border-spacing: 10px;
padding: 15px;
}
tr:nth-child(odd) { background-color:#eee; }
tr:nth-child(even) { background-color:#fff; } 
</style>'+ 
N'<H3><font color="Red">Credits from Past week</H3>' +
N'<table id="box-table" >' +
N'<tr>
<th>Credit #</th>
<th>Date</th>
<th>Account #</th>
<th>Customer</th>
<th>ex GST</th>
</tr>' +
CAST ( ( 

SELECT
td = ORIN.DocNum ,'',
td =CONVERT(VARCHAR(8), ORIN.DocDate, 3) ,'',
td = ORIN.CardCode ,'',
td = ORIN.CardName ,'',
td = '$' + CONVERT(varchar, CONVERT(money, ORIN.DocTotal-ORIN.VatSum-ORIN.TotalExpns), 1) 
FROM ORIN INNER JOIN OSLP ON ORIN.SlpCode = OSLP.SlpCode 
WHERE OSLP.SlpName = 'SALES REP' and ORIN.DocDate > DATEADD(DAY, -7, GETDATE())
FOR XML PATH('tr'), TYPE 
) AS NVARCHAR(MAX) ) +
N'</table>' 

EXEC msdb.dbo.sp_send_dbmail @recipients='email@email.com',
@profile_name = 'SQL Alerts',
@subject = @subject,
@body = @tableHTML,
@body = @tableHTML2,
@body_format = 'HTML' ;
此T-SQL脚本在查询中只有@tableHTML时运行

我需要找出上面的错误原因? 感谢您的帮助

问候
Rick

@tableHTML只是一个字符串变量。您可以这样添加更多内容:SET@tableHTML=@tableHTML+'A Heading'。您对您的应收账款贷记单有疑问吗?有-我只是想复制上面的SELECT对账单,但将所有引用从OINV更改为ORIN。我试着从SET tableHTML=到N复制所有内容,然后在N之后添加它-我将tableHTML更改为tableHTML2。然后,我在tableHTML2的顶部添加了一个新的declare语句-但这似乎不起作用?几乎是这样:在填充@tableHTML2之后,放这行:SET@tableHTML=@tableHTML++@tableHTML2,并从后续调用中删除@body=@tableHTML2,这样您只有一个@body=@tableHTML,。我建议您将所有这些都封装在一个存储过程中,然后从作业中调用该存储过程。您还需要将@tableHTML2=更改为设置@tableHTML2=。我还建议您将所有的格式也移到外部CSS。。但是先让它工作起来。如果你这样做。。。将结果作为答案发布。如果这是针对某个特定的ERP,您可能也希望标记它