Может кто-нибудь посоветовать мне, как создать PIVOT с некоторым расчетом?Простой PIVOT с «реальными данными» не проблема, но я понятия не имею, как включить некоторые вычисления, даже такие базовые, как, например, вычитание значений между некоторыми столбцами ...
Пожалуйста, если Вы будетекто-то может, попробуйте использовать пример таблиц и данных ниже ...
-- Structure
-- ---------
-- Table of Products
CREATE TABLE ListProducts
(
ProductID INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(25)
);
-- Table of Processes
CREATE TABLE ListProcesses
(
ProcessID INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(25)
);
-- DataTable
CREATE TABLE Production
(
ProductionID INT IDENTITY(1,1) PRIMARY KEY,
ProductID INT FOREIGN KEY REFERENCES ListProducts(ProductID),
ProcessID INT FOREIGN KEY REFERENCES ListProcesses(ProcessID),
Amount INT
);
-- Data
-- ----
INSERT INTO ListProducts(Name) VALUES ('Product1'),('Product2'),('Product3');
INSERT INTO ListProcesses(Name) VALUES ('Process1'),('Process2'),('Process3');
INSERT INTO Production(ProductID,ProcessID,Amount) VALUES
(1,1,25),(2,1,15),(3,1,20),(1,2,10),(2,2,10),(3,2,5),(1,3,5),(2,3,5);
Я хотел бы получить PIVOT как:
| Products | Process1 | Process2 | Process3 |
| Product1 | 15 | 5 | 5 |
| Product2 | 5 | 5 | 5 |
| Product3 | 15 | 5 | NULL |
Как видите, вывод некак простой PIVOT, но у меня каждый «предыдущий» столбец вычитается из «следующего» столбца (кроме, конечно, последнего столбца) ...
Спасибо большое!:)