Может ли кто-нибудь перепроверить мой оператор SQL на предмет правильной работы и общего подхода?
Вот что происходит: у меня есть родительская и дочерняя таблица с отношением один-ко-многим, соединенные в столбце AccountNumberKey. В дочерней таблице есть числовые столбцы, которые мне нужно подвести.
Данные таковы, что все дочерние записи с данным значением AccountNumberKey всегда будут иметь одинаковые значения в своих двух числовых столбцах. Я хочу присоединиться к этим столам и для
каждый AccountNumberKey помещает сумму этих двух столбцов во временную таблицу. Мне нужно только суммировать столбцы из одной дочерней записи по каждому AccountNumberKey.
Некоторые примеры данных ниже (я надеюсь) прояснят ситуацию:
Parent Table Columns
ParentID InstitutionID AccountNumberKey
1 LocalHost 1873283
2 Acme Brokers 3627389
3 Dewey, Cheatem 1392876
4 NCC1701 8837273
5 Peyton Place 9981273
Child Table Columns
ChildID AccountNumberKey Value1 Value2 ProposalNumber
1 1873283 1000 100 58
2 1873283 1000 100 59
3 1873283 1000 100 60
4 1873283 1000 100 61
Вот мой SQL-оператор:
SELECT DISTINCT Parent.InstitutionID, AccountNumberKey, SUM(Child.Value1 + Child.Value2) as total
INTO #TempTable
FROM Parent
INNER JOIN
Child ON Parent.AccountNumberKey = Child.AccountNumberKey
GROUP BY Parent.InstitutionID, Parent.AccountNumberKey, Child.ProposalNumber
Цель состоит в том, чтобы связать таблицы и поместить данные во временную таблицу так, чтобы она выглядела так:
TempTable columns
InstitutionID AccountNumberKey Total
LocalHost 1873283 1100
Мой запрос SQL проходит проверку? Я не гений, когда дело доходит до группировок, и мне интересно, правильно ли это A) и B) нормально ли это делать или есть ли лучшие объединения, которые можно попробовать.
Спасибо!