2010-07-04 2 views
1

curiosité si c'est la meilleure façon de mettre à jour les soldes? Il exécute bien, mais je suis nouveau à SQL Merci pour tout conseil ...données de test mise à jour

*/ 
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 

Répondre

0

Je dois dire non, il est probablement pas la meilleure façon.

Pourriez-vous s'il vous plaît fournir une déclaration plus complète de votre problème en termes du domaine des affaires?

Je peux voir que vous importez un plan comptable de quelque part qui est fourni sous forme CSV.

D'une certaine manière votre script connaît les soldes qui devrait être affecté aux comptes, mais ce n'est pas clair pour moi où cette information supplémentaire est vraiment en venir.

Si vous avez une autre table avec les soldes (soldes), il semble qu'il n'y aurait pas besoin d'ajouter une colonne aux données importées, vous pouvez simplement combiner les données après l'importation du plan comptable (sans doute pour obtenir les derniers noms):

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

ou peut-être (si vous n'êtes pas sûr que les éléments peuvent être absents de chaque côté):

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