mysql如何统计一张表(存储过程)

handlertang 2014-05-10 03:11:56
是这样的, 有一张record表,记录车辆设备号(device_id)和日期(date)还有班次(shift_id) 以及加油量(ton),这张表会不定时插入新的数据(加油量)进来,所以要不定时跑一个存储过程来把这张表统计到另一张count表里,逻辑大概就是同一天同一班次同一设备号的加油量总和,请问如何写这个存储过程?

注:第一次是insert,第二次已存在这个设备但是又有新的一条数据了,所以就要update,请问这个怎么写?
感激不尽!!
...全文
212 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
benluobo 2014-05-10
  • 打赏
  • 举报
回复
主键在你需要统计的表里面 以device_id,date,shift_id建立主键 如果是统计总数,在记录表中建立触发器 create trigger tri_recond after insert on record for each row begin insert into(device_id,date,shift_id,count) values(NEW.device_id,NEW.date, NEW.shift_id, NEW.count) on duplicate key update count = count + NEW.count end
handlertang 2014-05-10
  • 打赏
  • 举报
回复
引用 1 楼 benluobobo 的回复:
以device_id,data,shift_id建立主键 使用replace into 即可
另外这张表里会有不同date的 device id, 如果设置了deviceID为主键的话,就不能统计当天此设备的油耗了? 只能统计所有日期的油耗?
handlertang 2014-05-10
  • 打赏
  • 举报
回复
引用 1 楼 benluobobo 的回复:
以device_id,data,shift_id建立主键 使用replace into 即可
另外主键是建立在要插入的count表上吗? 表是不是要drop掉重新建?
handlertang 2014-05-10
  • 打赏
  • 举报
回复
引用 1 楼 benluobobo 的回复:
以device_id,data,shift_id建立主键 使用replace into 即可
还要根据这个油耗和距离做一次运算再插入,请问这个怎么写
benluobo 2014-05-10
  • 打赏
  • 举报
回复
以device_id,data,shift_id建立主键 使用replace into 即可

56,681

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧