需要自己创建集合的题目

本文介绍了一个涉及100个账户余额查询的问题解决方案。通过创建账户和交易两张表,并使用SQL语句进行数据插入及查询,实现了100天内每个账户余额的记录。

一百个账户各有100$,某个账户某天如有支出则添加一条新记录,记录其余额。一百天后,请输出每天所有账户的余额信息
这个问题的难点在于每个用户在某天可能有多条纪录,也可能一条纪录也没有(不包括第一天)
返回的记录集是一个100天*100个用户的纪录集
下面是我的思路:

根据题目的意思创建两个表CREATE TABLE [dbo].[Account](
	[id] [int] NULL,
	[Name] [nvarchar](50) NULL
) ON [PRIMARY]

GO

CREATE TABLE [dbo].[Trade](
	[id] [int] NULL,
	[AccountId] [int] NULL,
	[sj] [datetime] NULL,
	[ye] [money] NULL
) ON [PRIMARY]

GO

 

 

 

插入数据以及答案declare @index int
set @index=1

while(@index<101)
begin
insert Account
select @index,'Name'+cast (@index as nvarchar(3))
set @index=@index+1
end

select * from Account


--生成天的时间,利用条Account


select identity(int,1,1) as Id into ##t  from Account

--假设开始时间是一个具体的日期/01/01
declare @startTime date
set @startTime = '2001/01/01 23:59:59'
select DateAdd(day,id, @startTime) as [datetime] into ##SDate from ##t



--求时间和帐号的组合情况
select Name,[datetime]
,ye=(select isnull(min(ye),100) from Trade t where t.AccountId= a.Id and t.sj<=s.[datetime])
from Account a,##SDate s

 

 

 

 

 

、、

转载于:https://www.cnblogs.com/mingyongcheng/archive/2011/03/15/1984895.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值