2010-07-04 3 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 
Смежные вопросы