我试图设置一些数据驱动的订阅并遇到问题。假设我想从昨天开始生成发票报告。有四张发票,每张发票都有任意数量的交易。报告需要运行四次。我有以下代码将发票加载到#Temp
。从那里它应该循环发票,查询适当的信息,从#Temp
删除该发票并转到下一张发票。
SELECT invoice
INTO #Temp
FROM dbo.InvoiceTable
WHERE CreatedOnDate between today and yesterday --obv not real
DECLARE @Invoice VARCHAR(25)
WHILE EXISTS(SELECT * FROM #Temp)
Begin
Select top 1 @Invoice = Invoice From #Temp
select name, date, amount etc
where InvoiceNo = @Invoice
Delete from #Temp WHERE @Invoice = InvoiceNo
End
drop table #Temp
这一切似乎都有意义,当我在SSMS中运行时,我得到了四个不同的结果集。但是,在设置数据驱动订阅时,它仅对该发票的交易数量运行第一张发票号码。九笔交易,九封电子邮件,所有相同的报告,其余3张发票没有其他报告。我的WHILE EXISTS
不合适吗?