gpt4 book ai didi

mysql - 当日期存储在单独的行中时,如何创建日期范围查询?

转载 作者:行者123 更新时间:2023-11-29 14:37:10 26 4
gpt4 key购买 nike

名为“报告”的表格:

|id|report_field_id|report_value_row_id|report_value|
|1|1|1|2012-01-05|
|2|2|1|Some text|
|3|3|1|109.00|
|4|1|2|2012-01-06|
|5|2|2|More text|
|6|3|3|889.73|
|7|1|3|2012-01-07|
|8|2|3|More text|
|9|3|3|889.73|

我想创建一个选择查询,对report_value 求和,其中report__field_id 等于3,其中report_field_id 1 是某个日期或某个日期范围。我不确定是否应该使用子查询、联接或其他什么。我对 MySQL 还很陌生,但我确实需要它来为我正在从事的项目工作。

最佳答案

好吧,让我们试试这个:

select
sum(r.report_value) as value
from
report r
where
r.report_field_id = 3
and exists
(
select
1
from
report r1
where
r1.report_value_row_id = r.report_value_row_id
and str_to_date(report_value, '%Y-%m-%d') between '2012-01-04' and '2012-01-05'
and r1.report_field_id = 1
)

话虽这么说,你的表设计相当糟糕。为什么不只包含日期、名称和值列?这样,您只需从日期在“2012-01-04”和“2012-01-05”之间的报告中选择 sum(value) 即可让您的生活变得轻松!我真诚地质疑您的数据库设计实践。这是一个关系数据库,而不是键值存储 - 像数据库一样使用它。

关于mysql - 当日期存储在单独的行中时,如何创建日期范围查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8791521/

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