Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如果计数的百分比差异小于1%,则停止包_Sql Server 2008_Ssis_Package_Percentage - Fatal编程技术网

Sql server 2008 如果计数的百分比差异小于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

我有一个每周运行的包,但如果计数差异超过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) 
            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

忘了提我是新来的你说停是什么意思?高兴地退出还是抛出错误?谢谢你的信息。@布瑞恩,如果这对你有用,请考虑将答案标记为正确。