2013-12-12 152 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 

我认为这会工作