gpt4 book ai didi

mysql - 使用 Talend/Tableau 计算日期之间的天数,包括银行假日

转载 作者:行者123 更新时间:2023-11-29 03:24:25 25 4
gpt4 key购买 nike

我有一系列转换并加入了 Talend OS 作业(来自 MySQL 连接),我需要对其执行日期计算。

我目前有一个合并表等,我将其称为“测试”:

(注意:日期格式只是为了纯粹的例子——它们在表中是 mySQL 格式)

   Date    |    ReplyDate    |  NoOfDays
---------------------------------------------
2016-01-01 2016-01-07 6
2016-01-06 2016-01-11 5

...是涉及的关键字段的示例。 Talend 的 diffDate calc 可以并且已经创建了一个“天数”字段,但它不允许非工作日(这是该字段的关键计算)。

我创建了一个单独的表,称为“NWD”(非工作日),它只是...

   NWD
-----------
2016-01-01
2016-01-02
2016-01-03
2016-01-09
2016-01-10

...等,并列出所有公共(public)/银行假期以及周末。

在 SQL 中,我知道我可以:

SELECT COUNT(nwd) from NWD where NWD >= [Date] and NWD <= [ReplyDate]

..但我正在努力思考如何在任一阶段为每一行生成此计算。我不确定这是应该由 Talend 处理的事情,还是某个 Tableau 中的计算字段。

我对两者都有点陌生,但我曾尝试在 Talend 中查看与 tMap 和 tIntervalMatch 的复杂连接,但它似乎超出了范围。我已将两个“表”导出到本地主机 MySQL,因此 Tableau 可以看到两个数据集,但我对如何在此处“加入”任何内容感到有点困惑。

我是:

a) 愚蠢又绿色;b) 用两条路径吠叫错误的树,或者;c) 在我头上?

任何人都可以建议/指导我吗?我已经搜索过类似的难题,但在这种情况下很难找到任何东西,尽管它一定是一个常见问题?在这个阶段,我对 Java 或 Talend OS 还不够了解,无法创建和使用类。

提前致谢。

最佳答案

例如:

DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,start_date DATE NOT NULL
,end_date DATE NOT NULL
);

INSERT INTO my_table VALUES
(1,'2016-01-01','2016-01-07'),
(2,'2016-01-06','2016-01-11');



CREATE TABLE public_holidays (date DATE PRIMARY KEY);

INSERT INTO public_holidays VALUES ('2016-01-01');



SELECT x.*
, 5 * (DATEDIFF(end_date, start_date) DIV 7)
+ MID('0123455501234445012333450122234501101234000123450', 7 * WEEKDAY(start_date) + WEEKDAY(end_date) + 1, 1)
- COUNT(y.date) working_days
FROM my_table x
LEFT
JOIN public_holidays y
ON y.date BETWEEN x.start_date AND x.end_date
GROUP
BY x.id;
+----+------------+------------+--------------+
| id | start_date | end_date | working_days |
+----+------------+------------+--------------+
| 1 | 2016-01-01 | 2016-01-07 | 4 |
| 2 | 2016-01-06 | 2016-01-11 | 4 |
+----+------------+------------+--------------+

关于mysql - 使用 Talend/Tableau 计算日期之间的天数,包括银行假日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38744651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com