Предположим, у меня есть исходная таблица, подобная этой:
Source
SourceKey (PK)
Data1
Data2
Amount
И я загружаю данные из 'Source' в две связанные таблицы, которые выглядят так:
Summary
SummaryKey (PK)
Data1
Data2
Amount
Detail
DetailKey (PK)
SummaryKey (FK)
SourceKey (FK)
Data2
Amount
EDIT
Игнорируя проблему соотнесения «Summary» и «Detail», идеальные операторы вставки выглядят так:
INSERT INTO Summary (Data1, Data2, Amount)
SELECT Data1, Data2, SUM(Amount) FROM Source GROUP BY Data1, Data2
INSERT INTO Detail (SummaryKey, SourceKey, Data2, Amount)
SELECT ???, SourceKey, Data2, Amount FROM Source
Я «решил» эту проблему с помощью пары таблиц временного хранения (соответствующих таблицам назначения) вместе с полусложным оператором UPDATE, чтобы связать их путем сопоставления по группирующим полям ( real ). пример имеет гораздо более сложную группировку). Я не могу помочь, но чувствую, что существует более простое решение, чем то, что я создал.
Любое решение должно работать в SQL Server 2000. Спасибо за любые идеи.