查询输出中具有相同名称但在SSIS查询输出中不允许的列?

时间:2014-11-19 16:21:25

标签: ssis

参考我回答here的上一个问题,当我在QA中运行查询时,它在两个单独的列中为我提供了具有相同列名的输出就好了。但是,当我尝试使用其中的查询创建包时,我无法创建它,因为它提示错误

  

错误0xc0207015:来源 - 查询1:有多个数据   名称为“national_provider_id”的源列。数据源   列名必须是唯一的。

那么我该如何解决这个问题呢?它不会给我这个错误但是给我输出文件需要的结果?

1 个答案:

答案 0 :(得分:1)

正确,因此SSMS和其他即席查询工具无法关注。您对SSIS数据流的输出需要表现得像表定义。您不能在表格中包含重复的列名称,并且您无法让它们返回SSIS将使用的查询中。对于平面文件连接管理器也是如此。列名必须是唯一的,就像错误消息所述。

你如何纠正它?提供别名。我使用AS语法(Column AS AliasName),但您也可以使用equals语法(AliasName = Column)

SELECT
  person.primarycare_prov_name,
  primarycare_provider.national_provider_id AS PrimaryCare_national_provider_id,
  rendering_provider.description,
  rendering_provider.national_provider_id AS RenderingProvider_national_provider_id
FROM person
LEFT JOIN appointments 
  ON person.person_id=appointments.person_id
LEFT JOIN provider_mstr rendering_provider 
  ON rendering_provider.provider_id = appointment.rendering_provider_id
LEFT JOIN provider_mstr primarycare_provider 
  ON primarycare_provider.provider_id = person.primarycare_prov_id