У меня есть этот запрос в SQL Server
SELECT
t.acc_no,
t.[group],
t.maxgroup, t.amount,
t1.assigned,
taken = CASE
WHEN t1.assigned = 0 THEN NULL
ELSE t.amount
END,
[left] = CASE
WHEN t1.assigned = 0 THEN NULL
ELSE (t.maxgroup - t1.assigned)
END
FROM
Testtable t
OUTER APPLY
TestApply1(t.acc_no, t.[group], [left]) t1
, и я пытаюсь отправить столбец в своей функции, но я получаю сообщение об ошибке с неверным именем [слева], мне нужен способ как-то отправитьэтот производный столбец в моей функции.Как я могу сделать это.
ALTER FUNCTION TestApply1
(@accountNo INT, @group VARCHAR(30), @left INT)
RETURNS TABLE
AS
RETURN
(SELECT
assigned = SUM(CASE
WHEN t1.amount > t1.maxgroup THEN t1.maxgroup
ELSE t1.Amount
END)
FROM
Testtable t1
WHERE
t1.acc_no = @accountNo AND t1.[group] <= @group)
GO