我正在从存储过程中生成数据集。我需要链接到我的数据集的另一个数据库中的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
感谢您抽出时间阅读这段文字。 :)
答案 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 Apply
或Cross Apply
来完成。请查看下面的示例。
CustomerPurchase