我一直在寻找问题的可能答案,但却找不到答案。让我们假设我有2个数据集。 dsMediaServerData有两列:id和channel。我有其他数据集(dsCatalogData),包含很多列,包括id和channel。我想过滤dsCatalogData以仅显示那些不在dsMediaServerData中的记录。
答案 0 :(得分:1)
我的建议是更新用于填充数据集的SQL查询,以便排除重复的id / channels。
如果您不能直接通过SQL执行此操作,因为数据集来自不同的数据集,您可以使用参数来完成此操作。
1)让我们从第一个数据集开始(在您的示例中为dsMediaServerData)。由于您的示例显示了按2列过滤,但数据将通过单个参数传递,因此您需要创建一个组合这两个数据的新列。
SELECT Convert(VARCHAR(255), id) + '_' + Convert(VARCHAR(255), channel) as 'combined_columns_to_filter'
2)现在创建一个新参数(让我们称之为@filter)。
3)现在更新第二个数据集。将@filter参数添加到WHERE子句中。
WHERE Convert(VARCHAR(255), id) + '_' + Convert(VARCHAR(255), channel) NOT IN (@filter)
这应该通过删除第一个数据集中找到的所有记录来有效地过滤第二个数据集,即使数据集位于不同的数据库中。