我有一个查询,我最终可以正常工作,但我真正需要的是使用 SQLPRINT
命令显示的结果。这样做的原因是我正在自动化发送电子邮件的结果,如果我可以让它们以打印文本的形式出现,那么我可以使用我们在这里使用的工具将结果嵌入到电子邮件中。否则,必须将当前结果作为文件附加,如果可能,我更喜欢打印文本。
我试图通过添加来修改查询DECLARE
,PRINT
但我真的很困惑,无法弄清楚。该查询有 2 个 CTE 从多个数据库中提取数据。它所做的是从我们的 SAP 系统中选择昨天的所有销售编号/ID,并将它们与我们昨天从我们的 POS 系统中的销售编号/ID 进行比较,以确保我们 POS 系统中的每笔销售现在都在 SAP 中。查询本身工作正常。
如何打印此查询的结果?
WITH CTE1 (SAP_SALE)
AS
(
select distinct convert(BIGINT,convert(varchar(15),WERKS)+(select RIGHT(convert(Varchar(20),BONNR),7)))
as Branch_tx_no from [PDP].[pdp].[S120] WITH (NOLOCK)
where SPTAG >= CAST(CONVERT(VARCHAR(10), GETDATE() -1, 101) AS DATETIME) AND
SPTAG < CAST(CONVERT(VARCHAR(10), GETDATE(), 101) AS DATETIME)
),
CTE2 (AR_SALE)
AS
(
select convert(varchar(15),branch_no)+convert(varchar(15),sale_tx_no)
from [ARDB01].[PP_BODATA].[DBO].[sales_tx_hdr] WITH (NOLOCK)
WHERE sale_date >= CAST(CONVERT(VARCHAR(10), GETDATE() -1, 101) AS DATETIME) AND
sale_date < CAST(CONVERT(VARCHAR(10), GETDATE(), 101) AS DATETIME)
and sale_type in ('C','L')
)
SELECT AR_SALE FROM CTE2 AS CTE2
Left OUTER JOIN CTE1 AS CTE1
ON CTE1.SAP_SALE = CTE2.AR_SALE
WHERE CTE1.SAP_SALE IS NULL
ORDER BY CTE2.AR_SALE