Sql server 2008 如何在SQL Server 2008中选择列值更改之前的行?

Sql server 2008 如何在SQL Server 2008中选择列值更改之前的行?,sql-server-2008,Sql Server 2008,我有一个服务台项目,在这个项目中,我们得到了一些与项目相关的问题。我正在显示当前一周中每天的票证状态,如下图所示 例如,箭头显示本周星期一之前仍然开放的票证总数 sql查询是这样的 declare @day datetime declare @maxdate datetime set @maxdate = getdate() set @day = Convert(Varchar(10),DATEADD(week, DATEDIFF(day, 0, getdate())/7, 0),110) tr

我有一个服务台项目,在这个项目中,我们得到了一些与项目相关的问题。我正在显示当前一周中每天的票证状态,如下图所示

例如,箭头显示本周星期一之前仍然开放的票证总数

sql查询是这样的

declare @day datetime
declare @maxdate datetime
set @maxdate = getdate()
set @day = Convert(Varchar(10),DATEADD(week, DATEDIFF(day, 0, getdate())/7, 0),110)
truncate table Tickets_Until_Current_Day
while  @day <= @maxdate
begin
insert into Tickets_Until_Current_Day
select convert(varchar(20),datename(dw,@day)), count(*) Total_Open_Tickets 
FROM OPENROWSET('MSDASQL.1','DSN=SQLitehgq','Select * from tickets') AS a 
where ticket_createdDate < @day + 1
and [status] = 'open'
set @day = @day + 1
end
现在假设在星期一创建的5张票在星期二关闭,那么箭头表示的数字变成25,因为表中这些票的状态现在已关闭

但我想在一周内展示相同的数字,这样我们就可以知道周一结束时有多少票真正开放。e、 例如,如果周一有30张票开放,那么在一周结束时,必须只显示30张

任何帮助都将不胜感激


谢谢。

您可以删除并[status]=“open”,因为只有createdDate条件才能处理它。是的。但这将返回到目前为止创建的所有票证。我试过了,它返回了一个巨大的数字。到目前为止,我只想要公开的票。