永发信息网

SQL查询数据,并对指定字段进行求和!

答案:1  悬赏:20  手机版
解决时间 2021-11-08 20:30
  • 提问者网友:自食苦果
  • 2021-11-07 19:31
SQL查询数据,并对指定字段进行求和!
最佳答案
  • 五星知识达人网友:执傲
  • 2021-11-07 20:38
问个问题,你现在求得是1-2月,所以是1月求N列,2月求Q列,那么如果你要求的是1-7月,那么是不是1月求N列,7月求Q列,中间的N列和Q列还求么?
如果不求,那么可以用union all+max+嵌套查询,就是先union 查出一个 1月的N列,其他OPQ列制0,七月也这样处理,Q列合并,其他值制0,全部的是OP列合并,NQ制0,然后在外面再嵌套一层group 再求max。(不过这个方法太麻烦了,效率肯定慢的吓死人)而且得不偿失。
另外一个办法,能想到的就是编函数(个人估计要便三个,一个起始月的,一个全部group by的,还有一个结束月的,一个函数也行,不过输出的结果就要用table的格式存了。),其实和上面的写法差不多,就是你输入你的起始月和结束月,然后在过程中去执行上面写得那个过程,只不过你可以把过程拆开,这样就能控制了,你如起始月的时候计算N列,结束月的时候计算Q列,然后在大于等于和小于等于的时候计算O和P列(不用循环直接两个数就行),然后输出。(这个似乎好控制一些。写过程也行,单纯的sql,没办法判断最大值和最小值,就算能判断,也要嵌套好几层,肯定很慢)追问1-7月话,O、P列需要全部求和追答所以我说的是分成三块,一块是1月求N列,一块是1-7月求op列,一块是7月求Q列,我只能给个思路,一条sql是完不成的。除非用第二种办法,就是写函数。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯