SSIS 多个条件拆分

Posted

技术标签:

【中文标题】SSIS 多个条件拆分【英文标题】:SSIS Multiple Conditional Splits 【发布时间】:2014-12-19 16:08:19 【问题描述】:

我是创建 SSIS 包的新手。我的数据库中有一个表,其中包含我需要的所有信息。我正在尝试创建一个 SSIS 包,该包将根据日期范围按部门和月份拆分数据。

我要创建包以按部门将数据拆分为单独的 excel 电子表格....但是,我不知道如何进一步将包根据日期范围以及按月进行有条件拆分部。非常感谢任何帮助。

SELECT
    Department
,   [Transaction Type]
,   Quantity
,   [Date/Time]
,   CASE
         when (cast([Date/Time] as Date)  >= '2014-06-01' and cast([Date/Time] as Date) < '2014-07-01') then 'June'
         when (cast([Date/Time] as Date)  >= '2014-07-01' and cast([Date/Time] as Date) < '2014-08-01') then 'July'
         when (cast([Date/Time] as Date)  >= '2014-08-01' and cast([Date/Time] as Date) < '2014-09-01') then 'Aug'
         when (cast([Date/Time] as Date)  >= '2014-09-01' and cast([Date/Time] as Date) < '2014-10-01') then 'Sept'
         when (cast([Date/Time] as Date)  >= '2014-10-01' and cast([Date/Time] as Date) < '2014-11-01') then 'Oct'
         when (cast([Date/Time] as Date)  >= '2014-11-01' and cast([Date/Time] as Date) < '2014-12-01') then 'Nov'
         when (cast([Date/Time] as Date)  >= '2014-12-01' and cast([Date/Time] as Date) < '2015-01-01') then 'Dec'
         else '' 
    END as Months
FROM [dbo].[DETAIL_DATA]

基本上,我想创建一个 SSIS 包,将数据按部门和月份放入 Excel 电子表格。有可能吗?

【问题讨论】:

MONTH() 函数是您的朋友。 msdn.microsoft.com/en-us/library/ms141258.aspx 我试过了,但没用.....我也用过 DT_DBDATE,没有运气。 您不能对部门拆分的每个输出再进行条件拆分吗? @Artnette 你是什么意思它没有工作?为什么不能使用MONTH()? 哪个rdbms? SQL Server? 【参考方案1】:

您可以尝试使用 for 循环或 foreach 循环任务,这将允许您遍历每个部门和每个月以导出它们。您可以从一个部门和一个月开始,然后尝试在部门循环内进行概括,保持月份固定;最后在另一个循环中概括月份。

关键是,正如我看到的那样,您需要一个循环而不是条件拆分。

【讨论】:

以上是关于SSIS 多个条件拆分的主要内容,如果未能解决你的问题,请参考以下文章

SSIS 条件拆分错误 - 表达式评估为 NULL,但“条件拆分”需要布尔结果

SSIS有条件拆分拒绝文件[关闭]

SSIS 条件拆分错误 - 数据类型 DT_BYTES 不能与二元运算符“==”一起使用

SSIS条件拆分为平面文件目的地

SSIS条件性分裂谱系误差

如果条件不满足,派生列表达式SSIS如何忽略表达式?