Sql server 2008 如果计数的百分比差异小于1%,则停止包
我有一个每周运行的包,但如果计数差异超过1%,它需要停止 以下是我的查询,以获取两个计数的百分比:Sql server 2008 如果计数的百分比差异小于1%,则停止包,sql-server-2008,ssis,package,percentage,Sql Server 2008,Ssis,Package,Percentage,我有一个每周运行的包,但如果计数差异超过1%,它需要停止 以下是我的查询,以获取两个计数的百分比: USE MandatedReporting DECLARE @a AS float DECLARE @b AS float declare @c as float SET @a = ( SELECT Row_Count FROM [MandatedReporting].[dbo].[DCFS_Weekly_File_Row_Count] WITH(NOLOCK
USE MandatedReporting
DECLARE @a AS float
DECLARE @b AS float
declare @c as float
SET @a = ( SELECT Row_Count
FROM [MandatedReporting].[dbo].[DCFS_Weekly_File_Row_Count] WITH(NOLOCK)
WHERE TableName = 'MandatedReporting.dbo.MATCH_WEEKLY_V3'
AND RunDate = ( SELECT MAX(RunDate) AS RunDate
FROM [MandatedReporting].[dbo].[DCFS_Weekly_File_Row_Count] AS ThisWeeksData WITH(NOLOCK)
WHERE TableName = 'MandatedReporting.dbo.MATCH_WEEKLY_V3'))
SET @b = ( SELECT Row_Count
FROM [MandatedReporting].[dbo].[DCFS_Weekly_File_Row_Count] WITH(NOLOCK)
WHERE TableName = 'MandatedReporting.dbo.MATCH_WEEKLY_V3'
AND RunDate = ( SELECT MIN(RunDate) AS RunDate
FROM [MandatedReporting].[dbo].[DCFS_Weekly_File_Row_Count] AS ThisWeeksData WITH(NOLOCK)
WHERE TableName = 'MandatedReporting.dbo.MATCH_WEEKLY_V3'
AND ABS(DATEDIFF(DD,GETDATE(),CAST(RunDate AS DATETIME))) < 10))
set @c = (@a-@b) *100.0/@b SELECT @c as 'Count'
使用强制报告
将@a声明为float
将@b声明为float
将@c声明为float
设置@a=(选择行数
从[MandatedReporting].[dbo].[DCFS\u Weekly\u File\u Row\u Count]到(NOLOCK)
其中TableName='MandatedReporting.dbo.MATCH\u WEEKLY\u V3'
和RunDate=(选择MAX(RunDate)作为RunDate
来自[MandatedReporting]。[dbo]。[DCFS\u Weekly\u File\u Row\u Count]作为本周数据(NOLOCK)
其中TableName='MandatedReporting.dbo.MATCH_WEEKLY_V3'))
设置@b=(选择行数
从[MandatedReporting].[dbo].[DCFS\u Weekly\u File\u Row\u Count]到(NOLOCK)
其中TableName='MandatedReporting.dbo.MATCH\u WEEKLY\u V3'
和RunDate=(选择MIN(RunDate)作为RunDate
来自[MandatedReporting]。[dbo]。[DCFS\u Weekly\u File\u Row\u Count]作为本周数据(NOLOCK)
其中TableName='MandatedReporting.dbo.MATCH\u WEEKLY\u V3'
和ABS(DATEDIFF(DD,GETDATE(),CAST(rundateas DATETIME))<10))
设置@c=(@a-@b)*100.0/@b选择@c作为“计数”
SQL Server 2008
谢谢您正在寻找有条件拆分。在
executesql Task
中执行存储过程后,需要将输出存储在变量中,然后根据输出实现条件拆分
您只需结束数据流,而不是将数据写入文件,否则,如果您想要一个核选项,您可以在存储过程中抛出错误或执行相同操作:
begin
raiserror('Foo Bar',16,1)
end
忘了提我是新来的你说停是什么意思?高兴地退出还是抛出错误?谢谢你的信息。@布瑞恩,如果这对你有用,请考虑将答案标记为正确。