[英]Use column defined from subquery in query
我需要使用從SEATS_RESERVED獲得的值。 下面的查詢為我提供了無效的列名稱“ SEATS_RESERVED”錯誤。
SELECT *,
SEATS_RESERVED =
(SELECT COUNT(UID)
FROM person WHERE person.RES_DATE = reservation_dates.RES_DATE
AND person.ARCHIVE = 'FALSE')
FROM reservation_dates
WHERE TERM = ?
AND SEATS_RESERVED < MAX_SEATS;
您不能在SELECT中創建派生字段並在WHERE子句中引用它。
有幾種解決方法,這是對查詢的更改最少的一種。
SELECT * FROM
(
SELECT *,
SEATS_RESERVED =
(SELECT COUNT(UID)
FROM person WHERE person.RES_DATE = reservation_dates.RES_DATE
AND person.ARCHIVE = 'FALSE')
FROM reservation_dates
WHERE TERM = ?
)
AS data
WHERE SEATS_RESERVED < MAX_SEATS;
您正在嘗試將SEATS_RESERVED設置為等於子查詢中的值,但尚未聲明SEATS_RESERVED。 另外,MAX_SEATS在哪里定義?
這個怎么樣:
DECLARE @MAX_SEATS INT
SET @MAX_SEATS = <some integer>
SELECT *,
(SELECT COUNT(UID) FROM person WHERE person.RES_DATE = reservation_dates.RES_DATE
AND person.ARCHIVE = 'FALSE' HAVING COUNT(UID) < @MAX_SEATS;) AS SEATS_RESERVED
FROM reservation_dates
WHERE TERM = ?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.