【问题标题】:Stop a package if a percentage difference of counts is less than 1%如果计数的百分比差异小于 1%,则停止包装
【发布时间】:2017-02-17 17:25:50
【问题描述】:

我有一个每周运行的程序包,但如果计数差异超过 1%,则需要停止。

这是我获取 2 个计数百分比的查询:

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'

SQL Server 2008 谢谢

【问题讨论】:

  • 忘了说我是 SSIS 的新手
  • 停止是什么意思?愉快退出还是抛出错误?

标签: sql-server-2008 ssis package percentage


【解决方案1】:

您正在寻找条件拆分。在Execute SQL Task中执行存储过程后,需要将输出存储在一个变量中,然后根据输出实现条件拆分。

只有结束数据流而不是写入文件,否则如果您需要核选项,您可以抛出错误或在存储过程中执行相同操作:

begin
    raiserror('Foo Bar',16,1)
end

【讨论】:

  • 感谢您的信息。
  • @Brian 如果这对您有用,请考虑将答案标记为正确
猜你喜欢
  • 2020-11-27
  • 1970-01-01
  • 1970-01-01
  • 2021-06-17
  • 2021-01-05
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多