Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 - Fatal编程技术网

MySQL使用循环从多个日期中选择数据

MySQL使用循环从多个日期中选择数据,mysql,Mysql,我试图计算各种产品的存活率,我将其定义为90天无需任何维修 基本上使用下面的查询,我能够从今天起提取数据。我希望能够在今年的每一天运行查询 我有两张桌子。一个包含每个小部件,另一个包含修复列表。我将两个表连接在一起,查找90天以内的记录 我在网上读了很多例子,我想这会管用,但不会运行。如果您对如何修复此查询或以更好的方式获取此信息有任何建议,我们将不胜感激 set @BeginDate = '01/01/2014', @EndDate = CURDATE(); Create Procedure

我试图计算各种产品的存活率,我将其定义为90天无需任何维修

基本上使用下面的查询,我能够从今天起提取数据。我希望能够在今年的每一天运行查询

我有两张桌子。一个包含每个小部件,另一个包含修复列表。我将两个表连接在一起,查找90天以内的记录

我在网上读了很多例子,我想这会管用,但不会运行。如果您对如何修复此查询或以更好的方式获取此信息有任何建议,我们将不胜感激

set @BeginDate = '01/01/2014', @EndDate = CURDATE();

Create Procedure dowhile()

Begin

While @BeginDate <= @EndDate Do
 SELECT
    All_Widgets.widget_name, 
    COUNT(DISTINCT(All_Widgets.id_num)) AS Total,
    COUNT(DISTINCT(Repaired_Widgets.id_num)) AS Repaired,
    100 - ((COUNT(DISTINCT(All_Widgets.id_num)) / COUNT(DISTINCT(Repaired_Widgets.id_num)) * 100)) AS survival_rate,
    @BeginDate, @EndDate
FROM All_Widgets
LEFT JOIN Repaired_Widgets ON (All_Widgets.hw_id = ammunition_repair_records.hw_id)
WHERE DATEDIFF(@BeginDate, All_Widgets.timestamp) <= 90
GROUP BY All_Widgets.widget_name

set @BeginDate = DateAdd(@BeginDate, INTERVAL 1 DAY);

End While;
End
set@BeginDate='01/01/2014',@EndDate=CURDATE();
创建过程dowhile()
开始

而@BeginDate为什么是循环?为什么不干脆
。。。其中begindate>=(curdate()-间隔90天)
?对于每个日期,我将获得每个产品的存活率。我想知道这一年的利率是如何变化的。如果我只看一个日期,我只能得到一个快照。我希望这能澄清问题。谢谢你看。