mysql - 获取某个日期范围内的记录

标签 mysql

表 1:

ID | FOO_ID | BAR|  START_DATE | END_DATE
1  |   343  | 3 | 11-02-2014 | 2-03-2016

表 2:

ID | FOO_ID | BAR | MONTH | CALCULATION A 
1  |  343   |  3  |   1   |      .98772 
2  |  343   |  3  |   2   |      .92422
3  |  343   |  3  |   3   |      .89223
4  |  343   |  3  |   4   |      .79002 
5  |  343   |  3  |   5   |     1.00182 
6  |  343   |  3  |   6   |      .97235 
7  |  343   |  3  |   7   |      .98674 
8  |  343   |  3  |   8   |      .99986  
9  |  343   |  3  |   9   |      .78942  
10 |  343   |  3  |  10   |      .67932 
11 |  343   |  3  |  11   |      .95282
12 |  343   |  3  |  12   |      .94828

期望的结果:

FOO ID | BAR | MONTH | CALCULATION A
343    |  3  | 11    |  .95282 
343    |  3  | 12    |  .94828
343    |  3  |  1    |  .98772 
343    |  3  |  2    |  .92422
343    |  3  |  3    |  .89223
343    |  3  |  4    |  .79002 
343    |  3  |  5    |  1.00182 
343    |  3  |  6    |  .97235 
343    |  3  |  7    |  .98674
343    |  3  |  8    |  .99986  
343    |  3  |  9    |  .78942 
343    |  3  |  10   |  .67932 
343    |  3  |  11   |  .95282
343    |  3  |  12   |  .94828 
343    |  3  |  1    |  .98772 
343    |  3  |  2    |  .92422

我在这里想做的是创建“期望的结果”表,以便我可以从开始日期(2014 年 11 月)开始对表 1 中的每一行进行表 2 中的列“计算 a”的总和示例),到示例中的结束日期(2/2016)。表 2 中的计算只有月份列。在本例中,我必须对第 1 个月、第 2 个月、第 11 个月和第 12 个月求和两次。

SUM(Calculation A)
group foo_id, bar

我遇到的麻烦是必须对第 1 个月、第 2 个月、第 11 个月和第 12 个月求和两次,并使其在“所需结果表”中出现两次。我需要有关此查询的帮助来创建“MySQL 中表 1 和表 2 中的“所需表”。

最佳答案

应该这样获得输出

select FOO_ID, BAR,  MONTH,  `CALCULATION A`
from table 2
order by field(month , 11, 12, 1, 2, 3,4, 5,6 ,7 8,9, 10) 

关于mysql - 获取某个日期范围内的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37732838/

相关文章:

mysql - 学校网站SQL设计

mysql - SQL 错误 - #1241 - 操作数应包含 1 列

php - 从多个 mySQL 表中检索数据

mysql - Promise reject 未捕获 Node mysql 错误

mysql - MYSQL 可以为 WHERE ... IN 查询使用索引吗?

php - 插入语句不起作用。不转移到其他表

mysql - Levenshtein 无法查找俄语单词

mysql - 如何在包含表示日期的文本的列上使用 ORDER BY?

php - 优化包含许多查询的 PHP 页面

mysql - 如何在 MySQL 中选择这些特定的行?