在内联查询之外的 Where 子句中使用内联查询别名
Using Inline Query Alias in Where clause outside of inline Query
我已经看到了解决方案,link 但它对我帮助不大。
我的问题是如何在 where 子句中对外部查询使用内联别名,因为我在 where 条件下的外部查询中使用内联别名时收到一条错误消息。
我的查询是-
USE db_Stock_Market;
GO
SELECT * FROM STOCK_DATA_FOR_ANALYSIS
--The days where there is 2% or more drop
SELECT * FROM (
SELECT
Date, Symbol, LEAD(BID_Open) OVER (ORDER BY Date) AS Purchase_price, 100/LEAD(BID_Open) OVER (ORDER BY Date) AS Shares,
(BID_Close-BID_Open)/BID_Open AS Day_Return, 100 AS Purchase
FROM STOCK_DATA_FOR_ANALYSIS
)
WHERE Day_Return< -0.02
错误消息-
Msg 156, Level 15, State 1, Line 11 Incorrect syntax near the
keyword 'WHERE'.
您缺少派生的 table 别名
SELECT * FROM (
SELECT
Date, Symbol, LEAD(BID_Open) OVER (ORDER BY Date) AS Purchase_price, 100/LEAD(BID_Open) OVER (ORDER BY Date) AS Shares,
(BID_Close-BID_Open)/BID_Open AS Day_Return, 100 AS Purchase
FROM STOCK_DATA_FOR_ANALYSIS
)A WHERE Day_Return< -0.02
试试这个:
USE db_Stock_Market;
GO
SELECT * FROM STOCK_DATA_FOR_ANALYSIS
--The days where there is 2% or more drop
SELECT * FROM (
SELECT
Date, Symbol, LEAD(BID_Open) OVER (ORDER BY Date) AS Purchase_price,
100/LEAD(BID_Open) OVER (ORDER BY Date) AS Shares,
(BID_Close-BID_Open)/BID_Open AS Day_Return,
100 AS Purchase
FROM STOCK_DATA_FOR_ANALYSIS
) as X
WHERE Day_Return< -0.02
我已经看到了解决方案,link
我的问题是如何在 where 子句中对外部查询使用内联别名,因为我在 where 条件下的外部查询中使用内联别名时收到一条错误消息。
我的查询是-
USE db_Stock_Market;
GO
SELECT * FROM STOCK_DATA_FOR_ANALYSIS
--The days where there is 2% or more drop
SELECT * FROM (
SELECT
Date, Symbol, LEAD(BID_Open) OVER (ORDER BY Date) AS Purchase_price, 100/LEAD(BID_Open) OVER (ORDER BY Date) AS Shares,
(BID_Close-BID_Open)/BID_Open AS Day_Return, 100 AS Purchase
FROM STOCK_DATA_FOR_ANALYSIS
)
WHERE Day_Return< -0.02
错误消息-
Msg 156, Level 15, State 1, Line 11 Incorrect syntax near the keyword 'WHERE'.
您缺少派生的 table 别名
SELECT * FROM (
SELECT
Date, Symbol, LEAD(BID_Open) OVER (ORDER BY Date) AS Purchase_price, 100/LEAD(BID_Open) OVER (ORDER BY Date) AS Shares,
(BID_Close-BID_Open)/BID_Open AS Day_Return, 100 AS Purchase
FROM STOCK_DATA_FOR_ANALYSIS
)A WHERE Day_Return< -0.02
试试这个:
USE db_Stock_Market;
GO
SELECT * FROM STOCK_DATA_FOR_ANALYSIS
--The days where there is 2% or more drop
SELECT * FROM (
SELECT
Date, Symbol, LEAD(BID_Open) OVER (ORDER BY Date) AS Purchase_price,
100/LEAD(BID_Open) OVER (ORDER BY Date) AS Shares,
(BID_Close-BID_Open)/BID_Open AS Day_Return,
100 AS Purchase
FROM STOCK_DATA_FOR_ANALYSIS
) as X
WHERE Day_Return< -0.02