【发布时间】:2018-09-20 14:10:12
【问题描述】:
我有以下两张表:
客户:
|Customer Code|Current Customer Code|
|123456|-|
---------------
|123455|-|
---------------
|123454|-|
---------------
|123453|-|
---------------
历史:
|customer Code x (current)|Customer Code y(former)|
|123456|123455|
---------------
|123455|123454|
---------------
|123454|123453|
---------------
|123453|123452|
---------------
|123452| |
我想要什么:
|Customer Code|Current Customer Code|
|123456|123456|
---------------
|123455|123456|
---------------
|123454|123456|
---------------
|123453|123456|
---------------
此时当前客户在客户表中是未知的。我需要从历史表中检索当前客户代码并将其写入客户表中的当前客户字段。
我到此为止:
SELECT
[Customer Code], [Current Customer Code] FROM customers
LEFT JOIN(
SELECT
c.[Customer Code],
t.dats
FROM Customers c
inner JOIN (
SELECT [Customer Code x], [Customer Code y] FROM
history t
LEFT JOIN Customers c
ON t.bpid = c.[customer code]
) t
ON c.[Customer Code] = t.[Customer Code]
几点说明:
- 可以有多组客户,但这些组将在历史记录表中。
- 数字中可以有跳跃,例如从 12455 到 12453。
【问题讨论】:
-
Here 是一个很好的起点。我完全不明白你要做什么。
-
在查看历史记录的同时从历史记录表中检索最新的当前客户。所以客户的当前客户代码是 123456。而客户代码的历史可以追溯到 123453。在我的客户表中,我想将当前客户代码的值设置为这些客户历史的最新客户代码(在例如:123456 到 123453)
-
太好了。没有一些细节我无能为力。从您发布的信息来看,我认为您没有太多机会,因为您没有发布任何数据来表明当前客户可能是什么。发布一些表定义和示例数据。然后试着解释你想要什么。
-
您要检索单个客户还是多个客户?另外,如果你从一个数字开始,预期的结果是什么?另一个号码?请举例?
-
表格没有自然顺序,所以没有最后一个。
标签: sql sql-server tsql