求一条简单的查询SQL语句 谢谢(50分)

fanqingfeng 2009-02-19 09:11:14
假设有表:

公司名 § 日期 § 当天收款
A 20090201 100
A 20090202 120
B 20090201 50
B 20090205 60
C 20090202 30
...

希望通过SQL查询得到这样结果:

公司名 § 日期 § 当天收款 § 当天累计总额(各公司分开累计)
A 20090201 100 100
A 20090202 120 220(即A公司之前总额100+今天120)
B 20090201 50 50
B 20090205 60 110
C 20090202 30 30
...
...全文
106 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dobear_0922 2009-02-19
  • 打赏
  • 举报
回复
select *,(select sum(当天收款) from tab where 公司名=a.公司名 and 日期<=a.日期) as [当天累计总额]
from tab a
order by 公司名,日期
htl258_Tony 2009-02-19
  • 打赏
  • 举报
回复

为了抢,未测试,以下是测试的.
create table 表(公司名 varchar(50),日期 varchar(50),当天收款 int)
insert into 表 select 'A','20090201',100
insert into 表 select 'A','20090202',120
insert into 表 select 'B','20090201',50
insert into 表 select 'B','20090205',60
insert into 表 select 'C','20090202',30

SELECT * , 当天累计总额 = (SELECT SUM(当天收款) FROM 表 where 公司名 = a.公司名 and 日期 <= a.日期) FROM 表 a
htl258_Tony 2009-02-19
  • 打赏
  • 举报
回复

SELECT *,当天累计总额=(SELECT SUM(当天收款) FROM 表 WHERE 公司名 <= a.公司名) FROM 表 a
如果这句不行,用这句:
SELECT *,当天累计总额=(SELECT SUM(当天收款) FROM 表 WHERE 公司名 >= a.公司名) FROM 表 a
pl_mm 2009-02-19
  • 打赏
  • 举报
回复
if object_id('tb') is not null
drop table tb
go
create table tb(公司名 varchar(50),日期 varchar(50),当天收款 int)
insert into tb select 'A','20090201',100
insert into tb select 'A','20090202',120
insert into tb select 'B','20090201',50
insert into tb select 'B','20090205',60
insert into tb select 'C','20090202',30

select *,
当天累计总额=(select sum(当天收款) from tb where 公司名=t.公司名 and cast(日期 as datetime)<=cast(t.日期 as datetime)) from tb t


公司名 日期 当天收款 当天累计总额
A 20090201 100 100
A 20090202 120 220
B 20090201 50 50
B 20090205 60 110
C 20090202 30 30
昵称被占用了 2009-02-19
  • 打赏
  • 举报
回复
加排序

select *,(select sum(当天收款) from tab where 公司名=a.公司名 and 日期<=a.日期) as [当天累计总额]
from tab a
order by 公司名,日期
昵称被占用了 2009-02-19
  • 打赏
  • 举报
回复
select *,(select sum(当天收款) from tab where 公司名=a.公司名 and 日期<=a.日期) as [当天累计总额]
from tab a
pl_mm 2009-02-19
  • 打赏
  • 举报
回复
select *,
当天累计总额=(select sum() from tb where 公司名=t.公司名 and cast(日期 as datetime)<=cast(t.日期 as datetime))
from tb t

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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