1
我遇到了數據庫問題,因爲它的審計工作起來很麻煩。我需要比較當前的變化和最後的變化,所以我想我會包括一個分組列。但是當我運行我的代碼時,某些列值是。它依次爲1,2,3,4,5,6,7,8,9,。什麼... idon'tevenknow?爲什麼9 + 1 = *,我該如何解決?
這是我在做什麼:
DECLARE @Person char(11), @DonationYTD decimal(10, 2), @OldPerson char(11), @OldDonationYTD decimal(10, 2), @Group int;
SET @Group=1;
DECLARE TempCursor CURSOR FOR Select PersonID, DonationYTD FROM MyTable;
OPEN TempCursor;
FETCH NEXT FROM TempCursor INTO @Person, @DonationYTD ;
WHILE @@FETCH_STATUS=0
BEGIN
IF(@Person != @OldPerson)
SET @Group=1;
IF( @Person = @OldPerson AND @[email protected])
SET @[email protected]+1;
UPDATE MyTable SET [email protected] WHERE [email protected] AND [email protected];
SET @OldPerson = @Person;
SET @OldDonationYTD = @DonationYTD;
FETCH NEXT FROM TempCursor INTO @Person, @DonationYTD ;
END
CLOSE TempCursor;
DEALLOCATE TempCursor;
SELECT PersonID, DonationYTD, Changegroup FROM MyTable
1 15.00 1
1 15.00 1
1 20.00 1
2 3.00 1
2 4.00 2
2 15.00 3
2 8.00 4
2 4.00 5
2 15.00 6
2 3.00 7
2 3.00 7
2 9.00 8
2 9.00 8
2 10.00 9
2 14.00 *
2 14.00 *
如果我嘗試做任何事情Changegroup它告訴我,它不能轉換爲varchar符號*爲整數。 爲什麼我會得到一個星號?我該如何解決它?
更改組似乎是'char(1)'或類似的,並且您正在插入一個長度爲2的字符串。 – 2014-10-16 22:16:05
我剛剛意識到你是對的!那就是問題所在。謝謝! – 2014-10-16 22:17:26