【发布时间】:2023-03-07 11:39:01
【问题描述】:
我有一系列转换并加入了一个 Talend OS 作业(来自 MySQL 连接),我需要对其执行日期计算。
我目前有一个合并表等,我将其称为“测试”:
(注意:日期格式仅用于纯示例 - 它们在表中采用 mySQL 格式)
Date | ReplyDate | NoOfDays
---------------------------------------------
2016-01-01 2016-01-07 6
2016-01-06 2016-01-11 5
...是所涉及的关键字段的示例。 Talend 的 diffDate 计算可以并且已经创建了一个“天数”字段,但它不允许非工作日(这是该字段的关键计算)。
我创建了一个单独的表,称为“NWD”(非工作日),它只是...
NWD
-----------
2016-01-01
2016-01-02
2016-01-03
2016-01-09
2016-01-10
...等,并列出所有公共/银行假日以及周末。
在 SQL 中,我知道我可以做到:
SELECT COUNT(nwd) from NWD where NWD >= [Date] and NWD <= [ReplyDate]
..但我正在努力弄清楚如何在任一阶段为每一行生成此计算。我不确定这是应该由 Talend 处理的事情,还是 Tableau somewho 中的计算字段。
我对两者都有点陌生,但我曾尝试在 Talend 中使用 tMap 和 tIntervalMatch 查看复杂的连接,但它似乎超出了范围。我已将两个“表”都导出到本地 MySQL 中,因此 Tableau 可以看到这两个数据集,但我对如何在这里“加入”任何内容感到有些困惑。
我是:
a) 愚蠢和绿色; b) 用两条路径在错误的树上吠叫,或者; c) 在我头上?
任何人都可以建议/指导我吗?我一直在寻找类似的难题,但在这种情况下很难找到任何东西,尽管它一定是一个普遍的问题?在这个阶段,我对 Java 或 Talend OS 的了解还不够,无法创建和使用一个类。
提前致谢。
【问题讨论】:
-
嗨 - 它们按照系统格式 %y-%m-%d 等存储在 mysql 中,并在所有相关区域中声明为日期类型。
-
您需要存储公共假期,但不需要存储周末。那么,我是否明白:你要计算两天之间的工作日数?
-
确实如此。我考虑过创建一个完整的日历表,其中包含累计工作日总和(每个工作日+1,依此类推),这意味着只需从该列中查找每个日期的整数值,然后是 Tableau 计算字段。不过在我看来,这似乎不是很有效。
标签: mysql tableau-api talend