SSIS从Excel Source聚合特定列= XXXX

时间:2014-03-08 02:05:51

标签: sql sql-server excel ssis

在SSIS中,我从Excel Source获取数据。这就是我的数据:

+----+---------+--------+
| id |   Pet   | Amount |
+----+---------+--------+
| 1  | Cat     | 3      |
| 2  | Cat     | 2      |
| 3  | Dog     | 2      |
| 4  | Hamster | 3      |
| 5  | Fish    | 7      |
| 6  | Cat     | 1      |
| 7  | Cat     | 1      |
+----+---------+--------+

现在,我的目标是SQL Server目的地。

我希望只能总结列出 Cat 金额列:

+----+---------+--------+
| id |   Pet   | Amount |
+----+---------+--------+
| >1 | Cat     | 3      |
| >2 | Cat     | 2      |
| 3  | Dog     | 2      |
| 4  | Hamster | 3      |
| 5  | Fish    | 7      |
| >6 | Cat     | 1      |
| >7 | Cat     | 1      |
+----+---------+--------+

总数为7.有没有办法用Excel数据源做到这一点?我知道如果我有一个SQL / OLE DB源,我可以进行查询,如

  SELECT columnname FROM table
       WHERE Pet="Cat"

如果我错了,请纠正我,并告诉我你是否需要澄清。

2 个答案:

答案 0 :(得分:1)

您可以在Excel中使用excel源后的条件性拆分转换,并仅选择Pet ==“Cat”的行。在条件性拆分之后,您应插入聚合转换以总结“金额”。 或者,您可以省略条件拆分并直接从聚合转换中获取总和。

答案 1 :(得分:0)

 SELECT sum (Amount) AS "Number of cats"
 FROM table
 where Pet="Cat"

那是你在找什么?

输出将是这样的:

  ________________
  |Number of Cats |
  |______7________|