200分求周汇总、月汇总、季度汇总的存储过程(还有100分在MS-SQL Server)

cc99 2006-07-11 10:33:47
200分求周汇总、月汇总、季度汇总的存储过程

涉及到的表:

create table account --帐户信息
(
accid int identity(1,1) primary key,--帐户序号
accname varchar(20),--帐户名称
accpas varchar(20),--帐户密码
uid char(20), --用户id号
useon char(1) default '1',--帐号是否启用
)

create table userinfo
(
uid char(20), --用户id号
uname nvarchar(20),--真实姓名
upart nvarchar(50),--所在部门
)

--销售基础数据
create table sellbase
(
uid char(20), --用户id号
extent nvarchar(50),--所在区域
upart nvarchar(50),--所在科室
task varchar(20), --年度任务
)

--到帐金额
create table ucurrent
(
uid char(20), --用户id号
cmoney varchar(20),--到帐金额
cdate datetime,--到帐日期
)

现在需要根据以上这些表,返回到帐金额的
===用户名、所在部门、排名、累积到帐资金、本周到帐资金、本月到帐资金、本季度到帐资金 ===
构成的一张表。天哪,我看了头都大的,差了很多资料,我这里也没有什么人可以请教的。谢谢,兄弟们帮忙!
...全文
282 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
A__ 2007-02-05
  • 打赏
  • 举报
回复
#T
Fooo 2006-12-17
  • 打赏
  • 举报
回复
#T
paoluo 2006-07-11
  • 打赏
  • 举报
回复
借用臨時表吧。


Select
用户名,
所在部门,
排名=Identity(Int,1,1),
累积到帐资金,
本周到帐资金,
本月到帐资金,
本季度到帐资金
Into #T
From(
Select
A.uname As 用户名,
A.upart As 所在部门,
SUM(IsNull(B.cmoney,0)) As 累积到帐资金,
SUM(Case DateDiff(wk,B.cdate,GetDate()) When 0 Then IsNull(B.cmoney,0) Else 0 End) As 本周到帐资金,
SUM(Case DateDiff(mm,B.cdate,GetDate()) When 0 Then IsNull(B.cmoney,0) Else 0 End) As 本月到帐资金,
SUM(Case DateDiff(qq,B.cdate,GetDate()) When 0 Then IsNull(B.cmoney,0) Else 0 End) As 本季度到帐资金
From userinfo A
Left Join ucurrent B
On A.uid=B.uid
Group By A.uname,A.upart) C
Order By 累积到帐资金 Desc

Select * From #T
cc99 2006-07-11
  • 打赏
  • 举报
回复
排名按照到帐金额的多少来排名
Eddie005 2006-07-11
  • 打赏
  • 举报
回复
o~ paoluo(一天到晚游泳的鱼) 的答案更好!
Eddie005 2006-07-11
  • 打赏
  • 举报
回复
select account.accname,userinfo.uname,userinfo.upart,
(select sum(cmoney) from ucurrent where ucurrent.uid=account.uid),
(select sum(cmoney) from ucurrent where ucurrent.uid=account.uid and cdate>=DateAdd(day,-7,getdate()),
(select sum(cmoney) from ucurrent where ucurrent.uid=account.uid and datepart(year,cdate)=DatePart(year,getdate() and datepart(month,cdate)=DatePart(month,getdate()) ),
(select sum(cmoney) from ucurrent where ucurrent.uid=account.uid and datepart(year,cdate)=DatePart(year,getdate()) ),
from account inner join userinfo on account.uid = userinfo.uid where account.useon = 1
paoluo 2006-07-11
  • 打赏
  • 举报
回复
Select
A.uname As 用户名,
A.upart As 所在部门,
SUM(IsNull(B.cmoney,0)) As 累积到帐资金,
SUM(Case DateDiff(wk,B.cdate,GetDate()) When 0 Then IsNull(B.cmoney,0) Else 0 End) As 本周到帐资金,
SUM(Case DateDiff(mm,B.cdate,GetDate()) When 0 Then IsNull(B.cmoney,0) Else 0 End) As 本月到帐资金,
SUM(Case DateDiff(qq,B.cdate,GetDate()) When 0 Then IsNull(B.cmoney,0) Else 0 End) As 本季度到帐资金
From userinfo A
Left Join ucurrent B
On A.uid=B.uid
Group By A.uname,A.upart
Order By A.uname,A.upart

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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