2017-05-02 51 views
0

我很努力地將SUM和GROUP BY函數連接在一起。下面的查詢工作正常:加入表格+ SUM和GROUP BY函數

select ID, sum(amount) 
from table1 
group by ID 
having sum(amount) between 1000 and 10000 

爲Table僅包括客戶ID,我還需要加入CUSTOMERS表,包含客戶名稱(列名)。下面的查詢不會爲我工作了:

select ID, name, sum(amount) 
from table1 
left join customers on table1.ID = customers.ID2 
group by ID 
having sum(amount) between 1000 and 10000 

開溝SUMGROUP BY功能並「修復」的問題,因爲還列名稱將是結果中提供的,但是我仍然需要總結和組的數量根據ID。在這種情況下,我應該如何加入另一張表,以便從表CUSTOMERS中顯示字段名稱?在SELECT列表無效」

列名或表達目前給定爲錯誤消息。

+2

一般GROUP BY規則說:如果GROUP BY子句指定時,SELECT列表中的每個列引用都必須標識分組列或者是set函數的參數! – jarlh

+0

添加一些示例表格數據和預期結果! – jarlh

+0

您正在使用哪些DBMS? Postgres的?甲骨文? –

回答

0

它需要在group by

select t1.ID, c.name, sum(t1.amount) 
from table1 t1 left join 
    customers c 
    on t1.ID = c.ID2 
group by t1.ID, c.name; 

的使用注意事項表的別名。在組

0

添加 「名」 的條款

select table1.ID, customers.name, sum(table1.amount) amount 
from table1,customers on table1.ID = customers.ID2 
group by table1.ID,customers.name 
0

嘗試

select t.ID, c.name, sum(t.amount) 
from table1 t 
left join customers c on table1.ID = customers.ID2 
group by t.ID, c.name 
having sum(t.amount) between 1000 and 10000 

或無需取決於您的要求