gpt4 book ai didi

mysql - 如何检索两个日期之间的报告数字

转载 作者:搜寻专家 更新时间:2023-10-30 23:34:50 25 4
gpt4 key购买 nike

为了隐含,我会说我们有 5 个 SQL 表

1) 客户账户2) 线索3) 来电4) 报告

下面是我编写的一个 SQL 示例,目的是了解它的工作原理。我的问题是,如何检索从电话调用之日起和 5 天后收到业务报告的记录。

例子

今天是 2017 年 6 月 8 日,我给一位领导打了电话。这条线索是 ABC。 ABC 对 XYZ 感兴趣。我于 2017 年 6 月 12 日向 XYZ 发送了一份报告。这是在 5 天内。因此应该检索并统计这条记录,因为我可能会在 5 天内找到超过 100 条记录。

SELECT Id, Name, DateOfCall
FROM Lead, Call, ClientAccounts
ON Lead.id = Call.id AND Lead.id = ClientAccounts.id
WHERE DATEDIFF (DateOfReport, StartOfCall, getDate()) < 5

如果我执行此 Sql 语句,它应该检索上述报告、ClientAccount 的名称以及与该 ClientAccount 关联的潜在客户。

我希望这是有道理的,我是 SQL 的初学者,但我知道我的 SQL 语法是错误的,但我的想法是理解这一点,稍后再担心语法,因为我没有 SQL 服务器来执行它。

最佳答案

您离目标不远了。

您需要使用正确的JOIN 语法;你的东西有点 splinter 。

SELECT ... some columns ...
FROM Lead L
JOIN Call C ON L.id = C.id
JOIN ClientAccounts CA ON L.id = CA.id

这会将别名 LCCA 分配给您的三个表。

您可以尝试使用 SELECT * 运行它,看看您得到了什么。但是在完成的查询中使用 * 是菜鸟犯的错误。

接下来您需要给出您希望SELECT 的列的名称和表别名。我必须猜测每列来自哪个表,因为您没有向我们展示您的表定义。所以,我猜...

 SELECT L.id, L.Name, C.DateOfCall
FROM Lead L
JOIN Call C ON L.id = C.id
JOIN ClientAccounts CA ON L.id = CA.id

运行它。看看你得到了什么。如果我的示例中的表名或列名有误,请修复它们。 (请不要要求我们在此处修复它们;我们不知道您的表格布局。)

最后您需要选择日期范围。尝试

WHERE C.StartOfCall >= CURDATE() - INTERVAL 5 DAY

这将获取通话在五天前午夜或之后开始的所有行。

关于mysql - 如何检索两个日期之间的报告数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44445710/

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