2010-07-04 85 views
1

只是好奇這是否是更新餘額的最佳方式?它執行罰款,但我是新來的SQL 感謝您的任何意見...測試數據更新

*/ 
CREATE DATABASE KFF 
GO 

USE KFF 

CREATE TABLE COA 
(
Account INT NOT NULL, 
Description VARCHAR(250), 
Short_Description VARCHAR(250), 
) 

BULK INSERT COA FROM 'C:\COA-IMPORT.TXT' WITH 
(
FIELDTERMINATOR = ',', 
ROWTERMINATOR = '\n' 
) 

ALTER TABLE COA 
ADD Balance money; 


SELECT * FROM COA 

use KFF 
update COA SET Balance=$1000 WHERE Account=100001 
update COA SET Balance=$2000 WHERE Account=100002 
update COA SET Balance=$3000 WHERE Account=100003 
update COA SET Balance=$4000 WHERE Account=100010 
update COA SET Balance=$5000 WHERE Account=100011 
update COA SET Balance=$6000 WHERE Account=100012 
update COA SET Balance=$7000 WHERE Account=100020 
update COA SET Balance=$8000 WHERE Account=100021 

回答

0

我不得不說沒有,這可能不是最好的方法。

您能否就業務領域提供有關您問題的更全面的聲明?

我可以看到您正在從CSV格式的某處導入帳戶圖表。

不知何故,您的腳本知道應該分配給帳戶的餘額,但是我不清楚這些額外信息是從哪裏來的。

如果您有另一個包含餘額(餘額)的表格,似乎不需要爲導入的數據添加一列,您可以在導入帳戶圖表後簡單地合併數據(推測可以獲得最新的名字):

SELECT * 
FROM Balances 
INNER JOIN COA 
    ON COA.Account = Balances.Account 

或者可能(如果你不能確定是否項目可以在任何一方丟失):

SELECT * 
FROM Balances 
FULL OUTER JOIN COA 
    ON COA.Account = Balances.Account