Я новичок в sql и застрял с проблемой, где я даже не знал, с чего начать ее решение. Вот почему я здесь.
Вот как выглядит моя установка (я немного упростил ее):
Столбцы Calculation
таблицы:
- Article_ID
- Версия
- Комментарий
Столбцы временной таблицы #needs_comment
:
- Article_ID
- Calculation_Version
- Material_Number
- Material_Price_Old
- Material_Price_New
Пример содержимого для #needs_comment
:
+------------+---------------------+-----------------+--------------------+----------------------+
| Article_ID | Calculation_Version | Material_Number | Material_Price_Old | Material_Price_New |
+------------+---------------------+-----------------+--------------------+----------------------+
| 1 | 4 | Mat400 | 20 | 30 |
| 1 | 4 | Mat500 | 50 | 60 |
| 2 | 3 | Mat200 | 30 | 40 |
+------------+---------------------+-----------------+--------------------+----------------------+
My UPDATE
утверждение:
UPDATE Calculation AS c
SET c.Comment = CONCAT('Fabric «', nc.Material_Number, '» price change from ', nc.Material_Price_Old, ' to ', nc.Material_Price_New, '.')
FROM Calculation
JOIN #needs_comment AS nc ON nc.Article_ID = c.Article_ID AND nc.Calculation_Version = c.Version
Я хочу автоматически вставлять комментарий в таблицу расчета, если изменилась цена одного или нескольких материалов, используемых в расчетах c. Поэтому я уже создал все временные таблицы, которые мне нужны для получения правильных данных (ie. Старая цена материала, новая цена материала, когда последний раз обновлялся расчет и т. Д.).
My Update statement сам работает. Он обновляет комментарий поля в таблице расчета с соответствующей информацией. Но это работает только в том случае, если изменилась цена только на один материал. Если существует несколько материалов с разной ценой для одного и того же расчета, он вставляет только один комментарий для одного из изменений. Но я хочу, чтобы он вставлял комментарий для каждого измененного материала. К сожалению, я не понимаю, как я могу oop комментарий для каждого из изменений.
Вот как выглядит таблица вычислений после выполнения оператора обновления:
+------------+---------+---------------------------------------------+
| Article_ID | Version | Comment |
+------------+---------+---------------------------------------------+
| 1 | 4 | Fabric «Mat400» price change from 20 to 30. |
| 2 | 3 | Fabric «Mat200» price change from 30 to 40. |
+------------+---------+---------------------------------------------+
Вот так я бы хотел, чтобы он выглядел:
+------------+---------+-----------------------------------------------------------------------------------------+
| Article_ID | Version | Comment |
+------------+---------+-----------------------------------------------------------------------------------------+
| 1 | 4 | Fabric «Mat400» price change from 20 to 30. Fabric «Mat500» price change from 50 to 60. |
| 2 | 3 | Fabric «Mat200» price change from 30 to 40. |
+------------+---------+-----------------------------------------------------------------------------------------+
Большое спасибо за каждый совет!