[英]Use computed column of stored procedure in same SP at other place
我剛剛計算出一個月的工作日數,然后乘以8,並將其存儲為BaseHours
。 它是一個SP,它返回許多列,包括BaseHours
。 現在,對於另一列,我想在同一SP中使用此BaseHours
,但出現錯誤。 我正在使用SQL Server。
無效的列名“ basehours”
(case when f.employmenttype = 3 then
(case when c.paqtyq > BaseHours then
(c.paqtyq + (c.paqtyq - BaseHours)) * 0.5
else
c.paqtyq
end)
else
BaseHours
end) as bhours
我假設您實際上不是在現有表上創建計算列,而是將計算列作為結果集的一部分返回?
如果是這樣,則需要存儲結果集,直到完成后才返回它。
-- Create and store the result set
SELECT
...
INTO
#temp
FROM
...
-- Do your checks
???
-- Return the result set
SELECT
*
FROM
#temp
編輯我仍在猜測,但我想我可能理解您的問題...
您不能在select語句的其他地方重復使用別名列,因此這將無法工作...
SELECT
value * 1.15 AS price,
price * 0.95 AS discounted_price
FROM
stock_table
相反,您需要分兩個步驟進行操作...
SELECT
price,
price * 0.95 AS discounted_price
FROM
(
SELECT
value * 1.15 AS price
FROM
stock_table
)
AS prices
或使用CTE,我認為它更整潔...
WITH
prices AS
(
SELECT
value * 1.15 AS price
FROM
stock_table
)
SELECT
price,
price * 0.95 AS discounted_price
FROM
prices
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.