Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mySQL中将频率表转换为时间表视图_Mysql_Schedule - Fatal编程技术网

在mySQL中将频率表转换为时间表视图

在mySQL中将频率表转换为时间表视图,mysql,schedule,Mysql,Schedule,我有一个mySQL表,其中包含以下内容: ID START FREQUENCY REPETITIONS RESOURCE -------------------------------------------------- 1 24/02/2014 daily 5 10 2 24/02/2014 yearly 2 11 是否有任何简单的方法将其转换为视图,例如: ID DATE

我有一个mySQL表,其中包含以下内容:

 ID   START        FREQUENCY  REPETITIONS  RESOURCE 
 --------------------------------------------------
 1    24/02/2014   daily      5            10
 2    24/02/2014   yearly     2            11
是否有任何简单的方法将其转换为视图,例如:

ID  DATE         RESOURCE
-------------------------
1   24/02/2014   10
1   25/02/2014   10
1   26/02/2014   10
1   27/02/2014   10
1   28/02/2014   10
2   24/02/2014   11
2   24/02/2015   11

谢谢

如果重复次数有限,可以创建如下数字表:

CREATE TABLE numbers (
  num INT,
  i INT
);

INSERT INTO numbers VALUES
(1,1),
(2,1),
(2,2),
(3,1),
(3,2),
(3,3),
(4,1),
(4,2),
(4,3),
(4,4),
...
然后可以使用连接:

SELECT
  ID,
  `START` + INTERVAL CASE WHEN FREQUENCY='daily' THEN i-1 ELSE 0 END DAY
          + INTERVAL CASE WHEN FREQUENCY='yearly' THEN i-1 ELSE 0 END YEAR
   as `Date`,
  RESOURCE
FROM
  yourtable INNER JOIN numbers
  ON yourtable.REPETITIONS = numbers.num
ORDER BY
  ID, numbers.i

请看小提琴。

那太好了!我现在无法访问我的数据库,但看不出有任何原因它无法工作!一个简单的问题是,“日期”值显示为“2014年2月24日00:00:00+0000”。这个+0000是什么?它仍然是日期值吗?