2013-12-12 63 views
0

我已經裝箱了兩條表一個是CUTOMER等一個是奧德請幫我解決這個

select * from customers; 

Customer表

1 101 jun 23 yyyy 15000 
2 102 jas 24 zzzz 10000 
3 103 fat 20 kkkk 20000 
4 104 jini 40 llll 30000 
5 105 michael 30 dddd 25000 
6 106 das 25 hhhh 10000 
7 107 vijay 26 mmmm 12000 
8 108 thanku 31 jjjj 26000 
9 109 vishnu 34 gggg 24000 
10 110 vas 28 ffff 18000 

select * from ord; 

這是爲了表

1  12/11/2013 1:00:00 AM 102 2500 
2 202 12/11/2013 4:14:17 AM 102 3000 
3 203 12/9/2013 9:18:16 PM 103 2000 
4 204 12/8/2013 12:00:00 PM 102 1000 
5 205 12/24/2013 107 2000 

這是我使用的聯盟命令

select c.name,c.salary,o.amount 
from CUSTOMERS c 
inner join ord o 
on c.id=o.customer_id; 

那麼結果表是

1 jas 10000 1000 
2 jas 10000 3000 
3 jas 10000 2500 
4 fat 20000 2000 
5 vijay 12000 2000 

我想造成這樣的

1  jas  10000 6500 
2  fat  20000 2000 
3  vijay 12000 2000 

表plz幫助我解決這個。

+2

請使用描述您的問題更講題。這可以讓其他人更輕鬆地查找和評估您的問題。 –

回答

4

group by c.name, c.salarysum(salary)是你想要什麼:

select c.name, c.salary, sum(o.amount) 
from CUSTOMERS c 
inner join ord o on c.id=o.customer_id 
group by c.name, c.salary; 
+0

感謝Mahamoud Gamal它的工作.... :-) – user3077239

+1

@ user3077239 - 任何時候都歡迎,如果您發現它有幫助,請嘗試接受它:) –

1

嘗試這是否會工作。


    select c.name,c.salary,sum(o.amount) 
    from CUSTOMERS c 
    inner join ord o 
    on c.id=o.customer_id 
    group by 1,2; 

謝謝。

+1

將1,2更改爲列名稱。選擇c.name,c.salary,來自CUSTOMERS的總和(o.amount) c 內部連接ord o on c.id = o.customer_id group by c.name,c.salary; – noobdeveloper

+0

是的,它的工作......謝謝 – user3077239

+0

起初嘗試使用1,2組功能,這就是爲什麼我不能得到answaer – user3077239

0

使用Left JoinRIGHT JOIN

select c.name,c.salary,o.amount 
from CUSTOMERS c 
left join ord o 
on c.id=o.customer_id; 
1
select c.name,c.salary,SUM(o.amount) 
from CUSTOMERS c 
inner join ord o 
on c.id=o.customer_id 
GROUP BY c.name,c.salary 

我認爲這會工作