从Temp表中删除所有值,而不仅仅是指定

时间:2015-09-08 22:03:01

标签: sql ssrs-2012

我试图设置一些数据驱动的订阅并遇到问题。假设我想从昨天开始生成发票报告。有四张发票,每张发票都有任意数量的交易。报告需要运行四次。我有以下代码将发票加载到#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不合适吗?

0 个答案:

没有答案