У меня есть следующая упрощенная таблица:
╔══════════╦═══════════╗═══════════╗═══════════╗
║ Dough ║ Material ║ PerCharge ║ Perc ║
╠══════════╬═══════════╣═══════════╣═══════════╣
║ DG10001 ║ GR002152 ║ 2,00 ║ ║
║ DG10001 ║ GR000133 ║ 9,00 ║ ║
║ DG10001 ║ GR000133 ║ 9,00 ║ ║
║ DG10002 ║ GR002152 ║ 2,50 ║ ║
╚══════════╩═══════════╝═══════════╝═══════════╝
Тесто-материал - это отношение один ко многим, PerCharge - это вес сырья, используемого в контейнере.
Я хочу рассчитать процент для каждой отдельной строки на основе общего количества, использованного для каждого уникального теста.
Я использовал следующее, чтобы вычислить процент
SELECT D.Dough
,Material
,PerCharge
,PerCharge/Total as Percentage
FROM
(Select Dough
,sum(PerCharge) as Total
From [PP_Materials].[dbo].[Deegregels]
group by Dough
) as D
left join
(SELECT Dough
,Material
,PerCharge
FROM [PP_Materials].[dbo].[Deegregels]
) as D2
On D.Dough = D2.Dough
order by D.Dough
Теперь мне нужно только обновить исходную таблицу, чтобы включить этот рассчитанный процент, но я не могу понять, как сформулировать оператор обновления.
Любая помощь, которую вы можете оказать, приветствуется.
РЕДАКТИРОВАТЬ: Результат для упрощенного примера
╔══════════╦═══════════╗═══════════╗═══════════╗
║ Dough ║ Material ║ PerCharge ║ Perc ║
╠══════════╬═══════════╣═══════════╣═══════════╣
║ DG10001 ║ GR002152 ║ 2,00 ║ 10% ║
║ DG10001 ║ GR000133 ║ 9,00 ║ 45% ║
║ DG10001 ║ GR000133 ║ 9,00 ║ 45% ║
║ DG10002 ║ GR002152 ║ 2,50 ║ 10% ║
╚══════════╩═══════════╝═══════════╝═══════════╝