簡體   English   中英

SQL 在子查詢中引用別名

[英]SQL Refer to alias in subquery

我想查詢一個看起來像這樣的表:

customer_id (INT)、transaction_date (DATE)、收入(INT)

我正在嘗試創建一個表格,顯示每個不同 customer_id 的收入總和,但僅在 2014 年進行交易的客戶除外。

我的查詢:

SELECT DISTINCT(customer_id) AS a_customer_id, sum( case when (SELECT YEAR(transaction_date) FROM table__ WHERE customer_id = a_customer_id) != ('2014') then income else 0 end) AS sum_income FROM table__ GROUP BY a_customer_id ORDER BY sum_income DESC;

我收到的錯誤是“未知列a_customer_id ”。 如何將子查詢引用到在第一個查詢中創建的別名?

您的查詢不是有效的 SQL。 根據您的問題的描述,您似乎想要聚合和having子句:

select customer_id, sum(income) sum_income
from mytable
group by customer_id
having max(year(transaction_date ) <> 2014) = 1

這為您提供每位客戶的總income ,同時過濾掉僅在 2014 年進行過交易的客戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM