【发布时间】:2018-05-25 14:14:38
【问题描述】:
我在下面有一个非常棘手的场景,如果有人可以提供帮助,我将不胜感激。
我有两张桌子:
发送
TX_外部
TX 有两列:ID 和 Date_Reported
TX_External 有两列:ID 和 Date_Received
基本上我想找出来自 TX_external 的 Date_Received 和来自 TX 表的 Date_Reported 之间的天数差异。必须是工作日(没有周末或银行假期)。
所以我的最终输出应该是这样的
客户 ID | Days_Taken
主要问题。 我的主要问题是两个表中的 id 略有不同,例如:
Tx- ID= AB_123456_ABC
TX_External- ID= AB_123456
所以你可以看到它们是相似的并且指的是同一个交易,但是 TX 表 ID 在 "_ABC" 版本中的数字后面附加了随机的额外内容,这可能是额外的数字字母括号等(所以 AB_123456_ABC, AB_123456_E (1)、AB_123456_H 等)。更令人困惑的是,ID 不是一个一致的大小,即它们都不是 AB_123456,因为有些可能是 AB_12345678! 所以修剪到第二个_并修剪
如何修剪它,以便我可以得到与 Tx_External ID (AB_123456) 完全相同的结果,然后这将让我进行匹配,以便我可以针对该确切 ID 计算所花费的工作日?我可以在一个查询中完成所有这些吗?
抱歉提前大量描述,非常乐意进一步解释。
【问题讨论】:
-
您可以使用 LEFT 功能。在这种情况下,Tx- ID = LEFT (TX_External- ID, 9)
-
感谢您的快速回复,但请查看我的编辑更改,因为 id 并非都是一种尺寸
-
看起来你想把每一个都修剪到第二个下划线,然后加入对吧?
-
修复您的数据库模型并添加真正的外键。事实上,你将来会遇到越来越多的问题。你在找他们。
-
@DanielMarcus 是的,这正是我想要的
标签: sql-server date trim