【问题标题】:Column value should be unique to another column value列值对于另一个列值应该是唯一的
【发布时间】:2019-03-05 02:29:32
【问题描述】:

我正在创建一个 SSIS 包,其中如果一个产品名称的产品 ID 重复,则需要通知用户。我们通过在共享位置发送给我们的 csv 文件检索产品。

在此示例中,产品椅子和灯的 ProductID = 1。

所以基本上 productID = 1 是重复的,因为它也被产品灯使用。因此,通知用户使用了重复的 ProductID。

有人可以给我一些提示吗?

【问题讨论】:

  • 在 ProductId 上创建唯一索引。
  • 嗨 @SamM,正在从 csv 文件中检索数据。
  • 你检查过我在回答中提供的链接吗???
  • @Chadwick 你问过very similar question here 并且你得到了答案,如果问题得到解决,你必须接受答案或自己写。
  • @Chadwick 我编辑了我的答案并添加了相关链接

标签: sql csv ssis ssis-2012 ssis-2008


【解决方案1】:

您可以通过 3 种方法做到这一点:

  1. 将数据插入临时表并使用类似于以下内容的查询:

    SELECT PRODUCTID, COUNT(*) 
    FROM TEMPTABLE
    GROUP BY PRODUCTID
    HAVING COUNT(*) > 1
    
  2. 使用脚本组件计算出现次数并在发现重复项时抛出异常。查看以下链接了解更多信息:

  3. ProductID 上使用聚合转换并通过分组应用计数,请查看以下链接以获取更多信息:

【讨论】:

    【解决方案2】:

    很容易获得重复 PRODID 值的计数。

    使用Aggregate 转换

    Column PRODID - Operation Group By
    Column (*) - Operation Count all
    

    使用Conditional Split 关注它,其中[Count all] > (DT_UI8)1

    如果输出中有任何记录,则存在一个或多个重复项。

    【讨论】:

    • 你好@lit!感谢您的答复!我已经完成了条件拆分,我计算了所有重复项,我将其插入到带有 productid/productcode 列和 count 列的目标表中。但另一个问题是如何在结果中添加产品标签?
    • 什么是productlabel?你的意思是ProductName
    • 嗨@lit。是的产品名称。 :)
    猜你喜欢
    • 2016-03-14
    • 2018-08-05
    • 2021-10-17
    • 2016-05-06
    • 1970-01-01
    • 2023-02-23
    • 2016-09-04
    • 1970-01-01
    • 2018-04-02
    相关资源
    最近更新 更多