我有一个查询,
我有3个由TSQL查询生成的CTE,它们被用作联合人口统计信息列表,我们要求以特定格式提交此文件,每个文件中都有页眉和页脚行保存为csv。有人可以建议从SSRS生成以下格式的最佳方法,最终页眉和页脚将从SQL表中生成,该表将保存可用的提交ID,我想知道这种格式是否可以从SSRS自动化,或者如果有更好的方法,因为您可以看到页眉和页脚看起来是制表符分隔,没有其他列,则以逗号分隔的数据块,然后是另一个制表符分隔的页脚。
任何建议都将受到赞赏 - 非常感谢
下面需要
格式(虚拟数据):
0001011RNL DBS 473520180116
10,6374635,19540714,,,7253647987,p1,,john,,2,3 MADE UP ST,,local,CUMBRIA,,ca12 0T1,,,,,,,,A82635,,
10,9283746,19650325,,,7536482965,p2,,peter,,2,38 MADE UP ST,,WIGTON,,,ca12 0T3,,,,,,,,A82045,,
9901011RNL DBS 473520180116
根据用户建议更新:SSIS似乎是最好的方法 - 我发现以下资源似乎是必需的,我从https://www.sqlservercentral.com/Forums/Topic815666-148-1.aspx
获取了这个
由John Dempsey提供
- 在“控制流”选项卡上放置2个数据流任务。
- 使用第一个数据流任务生成标题和详细记录(行)
一个。从数据源获取数据
湾根据需要转换数据以满足细节行的结果
C。在详细信息行的布局中设置平面文件目标。 (不要担心标题)
d。打开平面文件目标任务后,您会注意到"标题的项目:"。如果您在此处的框中输入内容,则会在您的文件中将其硬编码为您的标题。但是,它不是硬编码,而是可以使其动态化。您可以创建一个SSIS变量来存储动态构建的头信息,然后将其分配给第一个数据流任务中的平面文件目标的Header属性。
- 在第一个数据流任务中将动态标头SSIS变量设置为平面文件目标的标头属性。
一个。在“控制流”选项卡上,选择第一个“数据流任务”,然后转到任务的属性窗口
湾展开[+] Expressions属性,然后单击[...]按钮
C。在“属性表达式编辑器”窗口中,单击左列以显示“标题和详细信息行”的“数据流任务”中可用的属性列表。
d。选择属性[平面文件目的地]。[标题](如果尚未重命名)将表达式设置为您为动态标题创建的SSIS变量名称。
- 当您使用详细信息行运行第一个数据流任务时,现在应显示您的动态标头。
- 打开第二个数据流并为页脚创建源代码,我使用脚本组件作为输入数据源,将源行映射到包含我的页脚行的SSIS变量。
- 为您的页脚创建平面文件目标,确保设置Overwrite property = False。您的平面文件目标将与您的第一个数据流任务中的标题和详细信息文件名相同,但布局将不同,以便与页脚对齐。
- 在运行SSIS时,程序包将运行执行第一个数据流任务,该任务从Header属性写入数据,然后执行每个详细信息行。然后,它将运行第二个数据流任务,将页脚行写入标题和详细数据流任务中使用的同一文件的末尾。
醇>