欢迎光临
我们一直在努力

Javaweb项目中根据不同时间分别获取不同数据的SQL语句

前两天一直在想一个需求,就是同一张表如何去根据不同时间获取不同的数据,因为SQL不太熟悉,所以想了很久最后想到在sql语句里使用case when进行判断,在这里将代码分享给大家,本人小白一个,大神勿喷

[SQL] 纯文本查看 复制代码
        select a.*,e.name AS EName, y.aname AS alarmName,q.name AS typeName from (select t.* from sys_alarmevent t        where equipmentTypeId =5 and t.`status`=0 and ADDTIME(t.alarmTimeId,'24:00:00') >= NOW()        union all        select t.* from sys_alarmevent t        where  equipmentTypeId !=5 and t.`status`=0 and ADDTIME(t.alarmTimeId,'00:05:00') >= NOW()) a        LEFT JOIN sys_equipment e ON e.equipment_id = a.equipmentId        LEFT JOIN sys_alarmtype y ON a.alarmtypeid=y.id        LEFT JOIN sys_eqlx q ON a.equipmenttypeid=q.id        order by a.alarmTimeId DESC

下面这个是根据另一张表里查的内容进行判断状态,如果另一张表能查出数据就说明是有信息的然后进行状态的分别赋值

[SQL] 纯文本查看 复制代码
        select DISTINCT t.* ,                        case WHEN (select count(0) from sys_alarmevent s                                   where s.equipmentTypeId =5 and s.`status`=0 and ADDTIME(s.alarmTimeId,'24:00:00') >= NOW() and t.equipment_id=s.equipmentId) =0                                 then 0 else 1 end as alarmStatus        from sys_equipment t  where t.lx_id =5 and ab_status=0        union all        select DISTINCT t.* ,                        case WHEN (select count(0) from sys_alarmevent s                                   where s.equipmentTypeId !=5 and s.`status`=0 and ADDTIME(s.alarmTimeId,'300') >= NOW() and t.equipment_id=s.equipmentId) =0then 0 else 1 end as alarmStatusfrom sys_equipment t  where t.lx_id !=5 and ab_status=0
赞(0) 打赏
未经允许不得转载:哈哈网 » Javaweb项目中根据不同时间分别获取不同数据的SQL语句

相关推荐

  • 暂无文章

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏