普通sql写好了,用到了set。帆软需要改为存储过程。有大神帮忙改下吗

sql.txt

普通的sql已经写好了,但是帆软需要用存储过程,研究几天存储过程没研究明白,有没有大神帮忙指点下

FineReport 用户C5217293 发布于 2021-1-25 09:02 (编辑于 2021-1-25 09:03)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
zsh331Lv8专家互助
发布于2021-1-25 10:25
-- 在结果数据中添加序号,简单问题复杂化了;
SELECT
*,
CASE   -- 零时编排序号
WHEN id MOD 2 = 0 
AND id MOD 4 = 0 THEN
's4' 
WHEN ( id + 3 ) MOD 2 = 0 
AND ( id + 3 ) MOD 4 != 0 THEN
's3' 
WHEN id MOD 2 = 0 
AND id MOD 4 != 0 THEN
's2' 
WHEN ( id + 3 ) MOD 2 = 0 
AND ( id + 3 ) MOD 4 = 0 THEN
's1' ELSE '0' 
END 'd' -- case 判断属于s1-s4
FROM
(
select 
*,
avg,
@rank:=@rank + 1 as  id
from 
(
SELECT
      *,   -- 分组字段写全
      avg( t ) avg
FROM
(
SELECT
COLLECTION_TIME,
CONCAT( a2.COLLECTION_TIME, '_', a2.UNIT_NAME ) AS x,
UNIT_NAME,
RESOURCE_NAME,
fMPA_CuGain AS t 
FROM
parameter_pid106a_02 a2
INNER JOIN ( SELECT UNIT_NAME AS dmc FROM parameter_pid106a_02 GROUP BY UNIT_NAME ORDER BY COLLECTION_TIME DESC ) a1 ON a2.UNIT_NAME = a1.dmc 
) a3 
GROUP BY
A3.UNIT_NAME  -- 分组字段写全
ORDER BY
COLLECTION_TIME DESC 
) a4,(SELECT @rank:= 0) kk
) mm


最佳回答
0
luojian0323Lv7资深互助
发布于2021-1-25 09:04(编辑于 2021-1-25 10:17)

几天你就想研究好存储过程?

沉下心来慢慢学。

虽然不知道你的业务逻辑,但是觉得存储过程是你用来处理数据的,跟帆软关系不大。



https://help.fanruan.com/finereport/doc-view-117.html?source=4

  • 用户C5217293 用户C5217293(提问者) 因为我用了set,直接用帆软会报错,前两天大神和我说需要用存储过程。
    2021-01-25 09:07 
  • 3关注人数
  • 478浏览人数
  • 最后回答于:2021-1-25 10:25
    请选择关闭问题的原因
    确定 取消
    返回顶部