gpt4 book ai didi

mysql - 查看最近x天是否没有创建记录

转载 作者:行者123 更新时间:2023-11-30 23:35:58 27 4
gpt4 key购买 nike

假设我有一个数据库来跟踪结构如下所示的浇水植物:

Table: "Plants"
ID Plants
----------------------------------
1 Roses
2 Daisies
3 Sunflowers
4 Marigolds
5 Daffodils

Table: "Maintenance"
ID Plant_ID Activity Date
-------------------------------------
1 1 Water 2011-09-09
2 1 Water 2011-08-02
3 2 Water 2011-08-15
4 3 Water 2010-07-01
5 4 Weed 2010-07-01

我正在尝试编写一个查询,告诉我们植物是否需要浇水,如果需要,需要多严重。换句话说:如果植物在过去 30 天内没有浇水,则返回“黄色”警告级别;如果在过去 60 天内没有浇水,则为“红色”警告级别。

这是我目前所处的位置:

SELECT Plants.Plants, 
IF ( DATEDIFF(CURRENT_DATE, MAX(Maintenance.Date)) < 30 AND maintenance.type = "Water", '',
IF ((DATEDIFF(CURRENT_DATE, MAX(Maintenance.Date)) >= 60 AND maintenance.type = "Water") or maintenance.date IS NULL, 'Red', 'Yellow')
) AS `Water Warning`,
IF ( DATEDIFF(CURRENT_DATE, MAX(Maintenance.Date)) < 30 and maintenance.type = "Weed" , '',
IF ((DATEDIFF(CURRENT_DATE, MAX(Maintenance.Date)) >= 60 and maintenance.type = "Weed") or maintenance.date IS NULL, 'Red', 'Yellow')
) AS `Weeding Warning`
FROM `plants`
LEFT JOIN `maintenance` ON `maintenance`.`plant_id` = `plants`.`id`
GROUP BY `plants`.`id`;

但这会为“Roses”返回“红色”警告,而不是预期的空字符串,并且没有 Maintenance.Activity 的条件。请注意,同一查询还需要为除草和其他事件执行类似的功能,因此在 WHERE 子句中进行过滤可能不是答案。

这是我想要的:

Results
ID Plants "Water Warning" "Weed Warning"
----------------------------------------------------
1 Roses "" "Red"
2 Daisies "Yellow" "Red"
3 Sunflowers "Red" "Red"
4 Marigolds "Red" ""
5 Daffodils "Red" "Red"

最佳答案

使用下面的语句,你只需要用植物名称加入表格。

SELECT *, 

CASE
WHEN DATEDIFF(CURRENT_DATE, DATE) >= 60 THEN 'RED'
WHEN DATEDIFF(CURRENT_DATE, DATE) >= 30 THEN 'YELLOW'
END AS FLAG
FROM test_table

关于mysql - 查看最近x天是否没有创建记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7365033/

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