求oracle中存储过程转化为mysql,如下是oracle的存储过程

哆啦A梦爱吃肉 2014-10-17 01:44:41
create or replace procedure p_t_userdayInc
is
begin
insert into t_r_userInc_day(day,incCount,t_incCount,channelid,deviceId,state)
select
trunc(sysdate -1) as day,
count(distinct userId) as incCount,
count(distinct userId) as t_incCount,
decode(grouping_id(channelid),1,'0',channelid) as channelid,
decode(grouping_id(deviceId),1,'0',deviceId) as deviceId,
0
from t_payplatform_user
where createtime >= trunc(sysdate-1)
and createTime < trunc(sysdate)
group by rollup(channelid,deviceId) ;
commit;
end ;
...全文
254 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengchow2001 2014-10-20
  • 打赏
  • 举报
回复
引用 4 楼 ZS6413752 的回复:
[quote=引用 2 楼 chengchow2001 的回复:] ORACLE不熟,估计你是讲查询结果导入到另一个表中
delimiter $$
create  procedure p_t_userdayInc
 begin   
 insert into t_r_userInc_day(day,incCount,t_incCount,channelid,deviceId,state)  
 select
 trunc(sysdate -1) as day,
 count(distinct userId) as incCount,
 count(distinct userId) as t_incCount,
 decode(grouping_id(channelid),1,'0',channelid) as channelid,
 decode(grouping_id(deviceId),1,'0',deviceId) as deviceId,
 0
 from   t_payplatform_user  
   where   createtime >= trunc(sysdate-1) 
    and     createTime < trunc(sysdate)  
 group  by  rollup(channelid,deviceId) ;    
 end ; 
$$
delimiter ;
这是把我的类容copy下来直接加开头和结尾? 我主要问的就是里面的函数在oracle怎么转化到mysql中。[/quote] 这个你还是按照版主说的,写出来大家给你看看 或者贴出示范表格和想要达到的效果,直接写比较合适 oracle没玩过,也不清楚oracle函数的意思,没法给你翻译成MYSQL语句
ACMAIN_CHM 2014-10-17
  • 打赏
  • 举报
回复
建议楼主先参考MYSQL官方手册中的语法和例子尝试亲自动手修改一下,然后如果有什么问题可以把亲自写的代码和错误提示一同贴出以供分析讨论。
moon0312 2014-10-17
  • 打赏
  • 举报
回复
trunc函数?rollup?oracle有很多函数mysql没有,要自己去实现的。
  • 打赏
  • 举报
回复
引用 2 楼 chengchow2001 的回复:
ORACLE不熟,估计你是讲查询结果导入到另一个表中
delimiter $$
create  procedure p_t_userdayInc
 begin   
 insert into t_r_userInc_day(day,incCount,t_incCount,channelid,deviceId,state)  
 select
 trunc(sysdate -1) as day,
 count(distinct userId) as incCount,
 count(distinct userId) as t_incCount,
 decode(grouping_id(channelid),1,'0',channelid) as channelid,
 decode(grouping_id(deviceId),1,'0',deviceId) as deviceId,
 0
 from   t_payplatform_user  
   where   createtime >= trunc(sysdate-1) 
    and     createTime < trunc(sysdate)  
 group  by  rollup(channelid,deviceId) ;    
 end ; 
$$
delimiter ;
这是把我的类容copy下来直接加开头和结尾? 我主要问的就是里面的函数在oracle怎么转化到mysql中。
  • 打赏
  • 举报
回复
你这是把我的类容copy下来直接加开头和结尾? 我主要问的就是里面的函数在oracle怎么转化到mysql中。
chengchow2001 2014-10-17
  • 打赏
  • 举报
回复
ORACLE不熟,估计你是讲查询结果导入到另一个表中
delimiter $$
create  procedure p_t_userdayInc
 begin   
 insert into t_r_userInc_day(day,incCount,t_incCount,channelid,deviceId,state)  
 select
 trunc(sysdate -1) as day,
 count(distinct userId) as incCount,
 count(distinct userId) as t_incCount,
 decode(grouping_id(channelid),1,'0',channelid) as channelid,
 decode(grouping_id(deviceId),1,'0',deviceId) as deviceId,
 0
 from   t_payplatform_user  
   where   createtime >= trunc(sysdate-1) 
    and     createTime < trunc(sysdate)  
 group  by  rollup(channelid,deviceId) ;    
 end ; 
$$
delimiter ;

56,675

社区成员

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

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