帮忙看下SQL语句,我想要的是过去七天每天的done/每天的待机时间的结果
select case when tb.设备ID=5005 then '1#' end as 设备号, round(cast((ta.done)as float)/tb.待机时间,2)as 能率, tb.日期 as 日期 from ( select  count(file_name) as done, convert(varchar(100),end_date,111) as end_date from iot_t_kadoudata_knc  where 1=1 and machine_id=5005  and end_date between convert(varchar(100),dateadd(day,-6,dateadd(day,-1,getdate())),111)+' 08:00:00' and convert(varchar(100),dateadd(day,-1,getdate()),111)+' 19:00:00' group by convert(varchar(100),end_date,111) )ta, ( select  a.日期, a.设备ID, round(cast((a.待机时间)as float)/60,2)as 待机时间 from iot_v_kadoudata_latest_7_days a where 1=1 and a.设备ID=5005 group by a.日期,a.设备ID,a.待机时间 )tb

运行上边的代码得到的结果如图:

批注 2021-03-18 144944.png

过去7天 每天的done结果如图:

批注 2021-03-18 145002.png

过去7天每天待机时间的结果如图:

批注 2021-03-18 145021.png

大葱蘸酱 发布于 2021-7-29 14:54
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
StudyYLLv6初级互助
发布于2021-7-29 15:38

后面加上where ta.end_date=tb.日期

最佳回答
1
MaskerwuLv5见习互助
发布于2021-7-29 16:22

用left join 加上where条件限制两边日期匹配上就好了,也就是楼上老哥的写法

  • 3关注人数
  • 257浏览人数
  • 最后回答于:2021-7-29 16:22
    请选择关闭问题的原因
    确定 取消
    返回顶部