https://blog.csdn.net/homechao/article/details/81207551?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control
https://blog.csdn.net/chongmu2584/article/details/100738740?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242
创建表:
create table test(date datetime,
userid varchar(2),
amount int)
insert into test values ('2018-10-02 00:00:00','u1',20)
insert into test values ('2018-10-02 21:09:28','u2',20)
insert into test values ('2018-10-02 21:09:29','u3',30)
insert into test values ('2018-10-03 21:36:44','u1',20)
insert into test values ('2018-10-03 21:36:46','u2',72)
insert into test values ('2018-10-03 21:36:52','u3',30)
insert into test values ('2018-10-30 21:36:54','u1',10)
insert into test values ('2018-10-30 21:36:57','u2',10)
执行:
select a.date,a.userid,a.amount,sum(b.amount) from test a,test b where a.userid=b.userid and a.date>=b.date group by a.date,a.userid,a.amount结果:
你的表格中MONAT 中并没有‘07’这个数据,所以你group by肯定是没有关于‘07’的数据的,系统没法知道你的 MONAT 就是我们常人理解的1到12个月,所以你查 A1.MONAT = '07'肯定是空。你要查这个求和如果不涉及其他应用(例如传参)的话,就用sql语句如下:
select sum(ZJ_B) from A where MONAT >'07'
如果你想前端应用就可以写个函数
CREATE function [dbo].[aGetZJ_B](@MONTH varchar(10))
returns decimal
AS
Begin
declare @sumnum decimal
Select @sumnum =sum(ZJ_B) from A where MONAT >@MONTH
return @sumnum
End
------------
然后你执行 select * from [dbo].[aGetZJ_B]('07')
* 我这个没考虑年份,你可以再加一个 year 参数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)