我正在学习SQL,我有一个问题。我有两张名为" vehicul"和老板。 第一个表(vehicul)看起来像这样:
id nr_vehicul marca id_marca tip culoare capacitate_cilindrica
1 DJ-01-AAA Mercedes 1 CLK 350 negru 3500
2 DJ-01-BBB Mercedes 1 S 500 silver 5000
3 DJ-01-CCC Mercedes 1 ML 550 alb 5500
4 DJ-01-DDD BMW 2 325 galben 2500
5 DJ-01-EEE BMW 2 X5 negru 350
第二个表(proprietate)看起来像这样:
id serie_buletin cnp nr_vehicul data_cumpararii pret
1 AK162332 2006036035087 DJ03AAA 2014-05-01 35000
2 AK162332 2006036035087 DJ03BBB 2014-05-02 90000
3 AK176233 6548751520125 DJ03CCC 2014-05-03 55000
4 BZ257743 6548751520125 DJ03DDD 2014-05-04 25000
5 BZ257743 2006036035087 DJ03EEE 2014-05-05 63000
我想显示专栏" marca"从第一个表格和第34列开始,价格"从第二个,但像这样。
marca | pret
Mercedes | 180000
BMW | 88000
基本上我有三辆梅赛德斯轿车和两辆宝马轿车,我怎么能一次显示梅赛德斯并且这三辆车的价格总结了?
答案 0 :(得分:2)
您需要加入两个表格并根据marca
字段对其进行分组,并加上pret
select marca, sum(pret)
from table1 as t1, table2 as t2
where t1.id=t2.id
group by marca
我假设id
字段正在加入两个表格,(但正如我从您的样本数据中看到的那样,它实际上与其他字段无关)
修改强>
我认为您遗失了id_marca
中的table2
字段。如果它在那里它将加入该列,如下例所示:
select marca, sum(pret)
from table1 as t1, table2 as t2
where t1.id_marca=t2.id_marca
group by id_marca;
答案 1 :(得分:1)
使用此请求
select marca, sum(pret)
from vehicul as Ve, proprietate as Pr
where Ve.nr_vehicul=PR.nr_vehicul
group by marca
或
select marca, sum(pret)
from vehicul as Ve
where Ve.id in(select nr_vehicul from proprietate)
group by marca
答案 2 :(得分:1)
您的表格不相关,因此无法获得所需的输出。
对于第二个表,我建议添加一个名为id_marca
的列,并将每个id_marca的值从第一个表存储到第二个表。因此,对于所有梅赛德斯而言,它的1和第2表也将它存储为1而宝马则存储为2,依此类推。
现在您的表格已关联,您可以加入
select
v.marca
sum(p.pret) as pret
from vehicul v
join proprietate p on p.id_marca = v.id_marca
group by marca