Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSIS包查询-按查询计数_Ssis - Fatal编程技术网

SSIS包查询-按查询计数

SSIS包查询-按查询计数,ssis,Ssis,我需要创建一个ssis包来计算公司和承包商处理的订单数量。我的输入数据有两列与此相关,如果两列都匹配,则表示其由公司提供,否则由承包商提供。 输入表 : 如何获得基于此逻辑的计数输出 我的输出应该是这样的 请帮助。以下方法将是一种方法- ssis包从oledb中获取数据作为样本,然后将其传递给派生列,以执行列转换-请注意,输入和输出各不相同,这就是我们需要派生列的原因。一旦列转换到位,我们将对行执行所需的聚合 包装布局- 派生列- 聚集- 另一方面:我更希望这些事情在数据库本身上执行——

我需要创建一个ssis包来计算公司和承包商处理的订单数量。我的输入数据有两列与此相关,如果两列都匹配,则表示其由公司提供,否则由承包商提供。 输入表

:

如何获得基于此逻辑的计数输出

我的输出应该是这样的


请帮助。

以下方法将是一种方法-
ssis
包从oledb中获取数据作为样本,然后将其传递给
派生列
,以执行列转换-请注意,输入和输出各不相同,这就是我们需要派生列的原因。一旦列转换到位,我们将对行执行所需的聚合

包装布局-

派生列-

聚集-

另一方面:我更希望这些事情在数据库本身上执行——这可以通过这个简单的查询来完成-

;WITH CTE AS(
SELECT '6/20/2018' AS Date, 'XXX' AS Station, 'XXX' AS WorkLocation, 12345 AS AccountNo UNION ALL
SELECT '6/20/2018' AS Date, 'XXX' AS Station, 'YYY' AS WorkLocation, 12345 AS AccountNo UNION ALL
SELECT '6/20/2018' AS Date, 'XXX' AS Station, 'XXX' AS WorkLocation, 12345 AS AccountNo)
SELECT Date,AccountNo,SUM(CASE WHEN Station = WorkLocation THEN 1 END) AS Company,SUM(CASE WHEN Station != WorkLocation THEN 1 END) AS Contractor 
FROM CTE
GROUP BY Date,AccountNo

我在承包商和公司得到了相同的价值观。不知道问题是什么。你能解释一下你在“公司”和“承包商”的派生栏中做了什么吗?截图是不言自明的,会要求调试你的代码并检查问题所在。可能您有不同的输入数据集。我的查询是匹配两个列,如果它们匹配,则应标记为“公司”,如果它们不匹配,则应标记为“承包商”。@Shre-您的查询是在哪里编写的?我没有看到你那边有任何尝试。我在SSIS中试过。我根据公司/承包商进行了有条件的拆分,然后将其聚合并尝试合并。合并输出给了我很多重复。根据您的输入,我使用pivot在查询本身中执行了它。从我的查询*pivot中选择(列名)(在(承包商、公司)中计算WorktoneBy的(WorktoneBy))作为P。感谢您的帮助。