一百个账户各有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
、、