【发布时间】:2018-04-16 12:33:36
【问题描述】:
我有这两张表:
- Cart_Details(Cart_ID、Product_ID、数量、小计)
- 产品(Product_ID、名称、描述)
我的 SQL 语句:
SELECT TOP 5
t1.Product_ID,
t1.Name,
t1.Category,
(SELECT COUNT(*)
FROM Cart_Details
WHERE Cart_Details.Product_ID = t1.Product_ID) AmountSold,
(SELECT Quantity
FROM Cart_Details
WHERE t1.Product_ID = Cart_Details.Product_ID) AS Quantity,
(Quantity * AmountSold) AS FinalSold
FROM
[dbo].[Product] t1
我正在尝试将别名(AmountSold 和 Quantity)的值相乘,结果为 FinalSold,但出现错误:
列名“AmountSold”无效。
和
列名“数量”无效。
我还有其他方法可以将两个别名中的值添加到新列中吗?
【问题讨论】:
-
您不能在同一范围内引用别名。您可以使用 CTE/子查询重复表达式或嵌套。
标签: sql-server