0
我想建立客户名单以及他们的AR历史是降神最后一次是0。这里是一个例子一组中选择的所有行至第一个0
我想打开这
ID ClientID Total Balance
67202 122 63.01 63.01
66234 122 60.94 60.94
65738 122 278.47 0
62144 122 69.61 69.61
61662 122 13.65 13.65
61625 122 169.79 0
67618 49 47.37 47.37
62112 49 44.02 0
这个
ID ClientID Total Balance
67202 122 63.01 63.01
66234 122 60.94 60.94
67618 49 47.37 47.37
注意,因为当时他们与排名前两位的记录之间的0,其中不包括记录62144和61662。
删除像62144和61662这样的记录是我的挂机。如果我只是想删除0的我可以做一个Balance <> 0
但我只想上记录到第一个0
下面是该查询我至今让我现在的我
select * from [Artrxs]
where [clientid] in (
SELECT [ClientID]
FROM [Artrxs]
where [id] in (
select max([id]) --Find the newest record for each client
FROM [Artrxs]
group by clientid)
and [balance] <> 0) --only show clients who's newest record is not 0
order by [clientid], [id] desc
最糟糕的情况是,我在报表的代码中遍历列表,我可以开始跳过,直到我点击一个新的客户端ID。但我真的希望能够在一个SQL查询中完成这一切。
我删除了日期时间列来简化我发布的表,但是,Id列是标识列,每增加一个新记录就会增加(因此新日期的记录将具有更高的ID) – 2010-12-15 16:43:53
需要'where Balance = 0'在CTE中,我想呢? – Donnie 2010-12-15 16:44:44
首先被定义为ID最高的记录 – 2010-12-15 16:45:31