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