2013-11-04 263 views
0

我有兩個表 -
表1:TypesSQl的左連接與表

ID | Type 
---+------ 
1 | type1 
2 | type2 
3 | type3 
4 | type4 
5 | type5 
6 | type6 

表2:Details

ID | Type | EventName | Cost 
---+--------+-----------+------ 
1 | type1 | name1  | 500 
2 | type1 | name2  | 500 
3 | type2 | name3  | 500 
4 | type3 | name4  | 1500 
5 | type3 | name5  | 1000 
6 | type3 | name6  | 1000 
兩個表

預期結果:

Type | Number | Cost 
-------+--------+-------------- 
type1 | 2  | 1000 
type2 | 1  | 500 
type3 | 3  | 3500 
type4 | 0  | 0 
type5 | 0  | 0 
type6 | 0  | 0 

我試着用LEFT JOIN。但它並沒有給我正確的數字。

+0

使用次數(eventName的),金額(成本)爲AGG功能並按類型分組。 – wxyz

+0

數字字段是什麼? – Damodaran

+0

數字字段是條目的計數。 –

回答

1
SELECT t.Type, count(d.Type), sum(d.cost) 
FROM Types t LEFT JOIN Details d ON t.Type=d.Type 
group by t.Type,d.Type 
+0

這給出了一個錯誤..... 列'd.type'在選擇列表中是無效的,因爲它不包含在任何一個聚合函數或GROUP BY子句 –

+0

你忘了按類型分組,非聚合列 – wxyz

+0

@SyedSohailAhmed檢查我的更新代碼 –

0
SELECT 
    t.Type, 
    count(t.type) as Number, 
    sum(d.cost) as Cost 
FROM 
    Types t 
    INNER JOIN Details d 
    ON t.type=d.type 
    GROUP BY t.type 
+1

計數應該超過d.type顯示0條目未使用類型 – wxyz

+0

+1對於那個@wxyz –

-1

嘗試SELECT * FROM (t.type),(t.EventName) 其中sum(d.cost)

+0

這是錯誤的。 –

+0

lolx ...如果我嘗試過這個,我會感到非常沮喪。對不起@Hex ..我想你應該再看看我的問題...... –