需要帮助将一个ID列与另一个ID列链接进行插入

时间:2018-10-18 03:01:36

标签: sql sql-server

我正在从存储过程中生成数据集。我需要链接到我的数据集的另一个数据库中的ID列。从一个数据库转到另一个数据库不是问题。问题是我在链接一个数据库而不是另一个数据库中的ID列时遇到麻烦。

两列之间有一个公共ID:CustomerEventID。我知道这将是我的链接,但这是问题所在。 CustomerEventID是唯一的ID,适用于客户在一次相遇中购买商品的情况。

我需要插入的列更加离散。它为从相遇中购买的每个物品创建唯一的ID(CustomerPurchaseID)。但是,我只需要拉出CustomerPurchaseID即可获得该遭遇中最后购买的物品。不幸的是,没有与CustomerPurchaseID相关的时间戳。

基本上,CustomerEventID是客户收据的唯一ID,而CustomerPurchaseID是该收据上购买的每个商品的唯一ID。

CustomerPurchaseID中提取最后一个CustomerEventID的最佳方法是什么(我只需要数据集中收据上的最后一个项目)?我将使用数据集(来自数据库A)的存储过程,使用SSIS包将数据集放入数据库B的表中,然后将CustomerPurchaseID插入该表中。

我不确定是否有帮助,但这是来自存储过程的查询,该查询将被发送到另一个数据库(该过程每两周运行一次,以将其发送到数据库B):

SELECT
    ce.CustomerEventID,
    ce.CustomerName,
    ce.CustomerPhone,
    ce.CustomerEventDate
FROM 
    CustomerEvent ce
WHERE 
    DATEDIFF(d, ce.CustomerEventDate, GETDATE()) < 14

感谢您抽出时间阅读这段文字。 :)

Example

1 个答案:

答案 0 :(得分:1)

如果select * from diary as d join json_each_text(d.custom_foods) as e on d.custom_foods != '{}' where e.value > 0 字段正在增加(如您所述),那么您可以在接起该行的同时在该字段上进行CustomerPurchaseID。如果您需要Order by Desc表中的所有字段,则可以使用父查询中的子查询来完成此操作,也可以执行Outer ApplyCross Apply来完成。请查看下面的示例。

CustomerPurchase