2
的條款,我有這個select語句的問題:不能引用聚合函數的別名在子查詢
SELECT
field1,
MIN(field2) AS MinOfField2,
(SELECT id FROM table2 WHERE something = MinOfField2) AS table2_id
FROM table1
GROUP BY field1
當我嘗試執行此查詢,訪問彈出一個對話框,要求我輸入參數'MinOfField2'的值。
首先,我試圖直接在子查詢中使用聚合函數,但似乎也不允許。
現有最接近的問題,我能找到的是這個:Access alias in subquery
好吧,我想我明白你的正在做。所以基本上,答案是不可能在子查詢中引用別名? – Zalumon
@Zalumon更正,子查詢無法引用在其自身之外創建的別名,因此Gord爲何使用派生表與連接。作爲一個方面說明,使用派生表幾乎總是比子選擇更快:) –
@Matt感謝您的確認。我相信派生表更快,但就我的口味而言,這種說法已經過於複雜(意味着每次我看到它時,至少需要15分鐘才能瞭解它在做什麼)。子選擇對我來說似乎更可讀。我幾乎總是選擇性能可讀性。我最終通過分兩步完成我的任務來解決這個問題,完全避免了這種SQL。 – Zalumon