【发布时间】:2020-09-16 13:23:05
【问题描述】:
我有 3 个表 Country(id 和 name)、motorcycle_model(id、name、price)和 sales(model_id、country_id、quantity 和 sales_date)。 问题是计算 2018 年的收入。
表格值如下:-
motor_cycle 表:
id名称价格
1 MOTO400 50000
2 YZM1000 70000
国家表:- 身份证名称 1 多米尼克 2 阿尔及利亚 3 圣多美和普林西比
销售表:- input 我使用我的脚本合并了 3 个表:-
select c.name,m.name,s.quantity*m.price as revenue from
sales s,country c, motorcycle_model m
where s.model_id=m.id and s.country_id=c.id and year(s.sales_date)='2018'
group by c.name,m.name
order by m.name ;
我得到的输出是:- myoutput
但预期的输出如下:- [预期输出][5] 如何获得收入为 0 的最后 3 行
预期输出:-
多米尼克MOTO400 250000
多米尼克 YZM10000 140000
圣多美和普林西比 YZM1000 560000
阿尔及利亚 MOTO400 0
阿尔及利亚 YZM1000 0
圣多美和普林西比 MOTO400 0
创建表格和输入值的代码是:-
create table motorcycle_model(id int,name varchar(20),price int);
create table country(id int,name varchar(20));
create table sales(model_id int,country_id int,quantity int,sales_date
date);
insert into motorcycle_model
values(1,'MOTO400',50000);
insert into motorcycle_model
values(2,'YMZ1000',70000);
insert into country
values(1,'Dominica');
insert into country
values(2,'Algeria');
insert into country
values(3,'Sao Tome and Prinipe');
insert into sales
values(2,3,4,'2018-01-29');
insert into sales
values(2,1,2,'2018-01-19');
insert into sales
values(2,1,2,'2017-12-20');
insert into sales
values(1,2,1,'2017-12-18');
insert into sales
values(1,3,5,'2017-12-10');
insert into sales
values(1,2,5,'2017-12-17');
insert into sales
values(1,1,5,'2018-01-10');
insert into sales
values(2,3,4,'2018-01-01');
insert into sales
values(2,2,3,'2017-12-24');
insert into sales
values(2,1,4,'2017-12-14');
【问题讨论】:
-
检查db-fiddle.com 您可以使用它来准备问题并将链接粘贴到工作数据库示例
-
你为什么选择不使用正确的、明确的、标准的、可读的
JOIN语法?
标签: mysql sql sum left-join where-clause