我有一個看起來像這樣(ID是PK標識字段)添加一個數字上的條件
ID Date Condition Call_Count
1 2015-03-02 14:05:05 Terminated 0
2 2015-03-02 14:05:10 Transferred 0
3 2015-03-02 14:06:02 Transferred 0
4 2015-03-02 14:07:00 Transferred 0
5 2015-03-02 14:07:50 Terminated 0
6 2015-03-02 14:07:60 Transferred 0
7 2015-03-02 14:08:55 Terminated 0
8 2015-03-02 14:08:56 Terminated 0
我曾嘗試下面的SQL Server表增加一個SQL Server表:
DECLARE @LoopId INT = 1,
@Call_Count INT = 1,
@callend INT,
@maxId INT,
@LoopCounter INT
Select @MaxId = max(ID) from Table1
WHILE(@LoopId <= @MaxId)
BEGIN
SELECT @callend = charindex('Terminated', Reason)
from Table1 where ID = @LoopId
set @Call_Count = @Call_Count + case when @callend > 0 then 1 else 0 end
IF @LoopId > 1
begin
update Table1
set Call_Counter = @Call_Count
WHERE Id = @LoopID
end
SET @LoopId = @LoopId + 1
END
我得到的結果是這樣的:
ID Date Condition Call_Count
1 2015-03-02 14:05:05 Terminated 1
2 2015-03-02 14:05:05 Terminated 2
3 2015-03-02 14:05:05 Terminated 3
4 2015-03-02 14:05:05 Terminated 4
5 2015-03-02 14:05:10 Transferred 4
6 2015-03-02 14:06:02 Transferred 4
7 2015-03-02 14:07:00 Transferred 4
8 2015-03-02 14:07:50 Terminated 5
9 2015-03-02 14:07:60 Transferred 5
10 2015-03-02 14:08:55 Terminated 6
11 2015-03-02 14:08:56 Terminated 6
我需要一個ID字段生成的都會有這樣的結果,它的東東ds將最後一個「終止」之後的數字更改爲將一個「呼叫」置於一個組中。
ID Date Condition Call_Count
1 2015-03-02 14:05:05 Terminated 1
2 2015-03-02 14:05:05 Terminated 2
3 2015-03-02 14:05:05 Terminated 3
4 2015-03-02 14:05:05 Terminated 4
5 2015-03-02 14:05:10 Transferred 5
6 2015-03-02 14:06:02 Transferred 5
7 2015-03-02 14:07:00 Transferred 5
8 2015-03-02 14:07:50 Terminated 5
9 2015-03-02 14:07:60 Transferred 6
10 2015-03-02 14:08:55 Terminated 6
11 2015-03-02 14:08:56 Terminated 7
正在使用的是何種版本的SQL Server? –
我忘了添加,這是SQL Server 2012,謝謝! –