Привет, у меня есть следующий запрос
GO
DECLARE @tempTable TABLE
(
Id INT PRIMARY KEY,
Referencia VARCHAR(15),
UAP NVARCHAR(20),
ConsumoWeek01 FLOAT,
ConsumoWeek02 FLOAT,
Stock INT,
PecasPorCaixa INT
UNIQUE (Id)
)
INSERT INTO
@tempTable
SELECT *
FROM
viewConsumoPDP
SELECT
C.Id,
C.Referencia,
C.UAP,
C.ConsumoWeek01 AS ConsumoInicialWeek01,
T.ConsumoWeek01 AS ConsumoActualWeek01,
T.ConsumoWeek01 / 5 AS ConsumoDiarioWeek01,
T.ConsumoWeek02 AS ConsumoWeek02
FROM
@tempTable T
INNER JOIN Parametros P
ON P.Referencia = T.Referencia
AND P.UAP = T.UAP
INNER JOIN Consumos C
ON C.Referencia = P.Referencia
AND C.UAP = P.UAP
Мне нужно создать некоторые переменные, которые рассчитываются с использованием значений некоторых столбцов, и мне нужно использовать эту переменную для вычисления других столбцов.
Причина в том, что я не хочу делать все вычисления для оператора select, и это будет большой путаницей, но я понятия не имею, возможно ли это с помощью SQL Transact.
Например
GO
DECLARE @tempTable TABLE
(
Id INT PRIMARY KEY,
Referencia VARCHAR(15),
UAP NVARCHAR(20),
ConsumoWeek01 FLOAT,
ConsumoWeek02 FLOAT,
Stock INT,
PecasPorCaixa INT
UNIQUE (Id)
)
DECLARE @NumPAB INT
INSERT INTO
@tempTable
SELECT *
FROM
viewConsumoPDP
SELECT
C.Id,
C.Referencia,
C.UAP,
C.ConsumoWeek01 AS ConsumoInicialWeek01,
T.ConsumoWeek01 AS ConsumoActualWeek01,
T.ConsumoWeek01 / 5 AS ConsumoDiarioWeek01,
T.ConsumoWeek02 AS ConsumoWeek02,
@ConsumoPAB = P.NumPab / T.ConsumoWeek01
FROM
@tempTable T
INNER JOIN Parametros P
ON P.Referencia = T.Referencia
AND P.UAP = T.UAP
INNER JOIN Consumos C
ON C.Referencia = P.Referencia
AND C.UAP = P.UAP
Вы можете видеть, что я хотел бы сохранить результат вычисления в переменной, а затем использовать его в другом вычисляемом столбце. Но как этого добиться, если я не могу присвоить значение в операторе выбора?