将分组报告数据导入数据库

时间:2017-08-16 14:18:17

标签: sql-server database import ssis

我的公司从无法以任何直接格式提供数据的客户端接收数据,因此我们必须导入多个报告,这些报告采用分组布局,如下所示。我们必须开发内部方法来取消组合报告,然后导入数据以获取我们需要的所有数据。目前我的团队成员正在使用MS Access / VBA生成所需的详细记录,但我想将其移至基于服务器和自动化的流程。我们使用SQL Server 2008R2进行存储,我想使用SSIS来完成任务。有谁知道我可以生成详细记录并将数据直接导入SQL Server的方法?

enter image description here

2 个答案:

答案 0 :(得分:1)

嗯 - 你肯定必须对数据集进行一些程序化调整,以便将该组日期添加到细节线。我不确定你将如何导入xlsx,但我建议先使用SSIS包,然后在脚本任务中进行调整,作为" best"这样做的方式。有关如何在SSIS脚本任务中处理Excel,请参阅here

如果您不了解SSIS或特别是编程,那么您最好的选择(在我看来)是将数据导入临时表,使用T-SQL进行操作然后将该表插入主表。我做了这个here的SQL小提琴。

    public void Save(CampaignLanguage campaignLanguage)
    {
        _campaignLanguageRepository.Update(campaignLanguage);
        _unitOfWork.Commit();
    }

答案 1 :(得分:1)

我会用脚本组件来做。

总数据流:

ExcelSource - >脚本组件(转换) - >条件性拆分 - > SQL目的地

在脚本组件中:

检查InputColumns上的accountSummary

将ActivityDate添加为输出列。

打开脚本:

在你的行处理之外。

添加:

public datetime dte;

内部行处理:

if (DateTime.TryParse(Row.ActivitySummary.ToString()))
{dte=DateTime.Parse(Row.ActivitySummary.ToString());}
else
{Row.ActivityDate = dte;}

然后添加条件拆分以删除空活动日期