我正在尝试解决练习#36,这是在数据库中列出首舰的名称(考虑到结果表)

主管船只是该类别中排在首位的船只的名称(即2艘船,但另一艘建造之前,因此第一艘船是“主管船”)。 我的结果说我确实说了以下内容:

您的查询在第一个(可用)数据库上返回了正确的数据集,但在第二个检查数据库上返回了不正确的数据集。 *错误的记录数(减去1)

我的查询如下:

SELECT A.name FROM Ships A
WHERE A.name = A.class
AND A.launched = (SELECT MIN(B.launched) FROM Ships B
              WHERE A.name = B.name
              AND A.class = B.class)
UNION ALL
SELECT A.ship
FROM Outcomes A
WHERE A.ship IN (SELECT C.ship FROM Outcomes C, Classes D
                 WHERE C.ship IN (SELECT ship FROM Outcomes)
                 AND C.ship NOT IN (SELECT name FROM Ships)
                 AND C.ship = D.class
                 )

数据库设置如下:

正在考虑参加第二次世界大战的海军舰船数据库。

该数据库具有以下关系:

Classes(class, type, country, numGuns, bore, displacement) 
Ships(name, class, launched) 
Battles(name, date) 
Outcomes(ship, battle, result) 

课堂上的船只被安排在一个项目中。 通常为一个船级分配所考虑的船级中的第一艘船的名称(总船); 否则,类名与数据库中的任何船名都不匹配。

“类别”关系包括类别名称,类型(战舰为bb,战舰为bc),战舰的建造国家,主炮数量,枪口径(枪管直径,以英寸为单位)和排量(以吨为单位的重量)。

船舶关系包括船舶名称,类别名称和发射年份。

战役关系涵盖了舰只参加战斗的名称和日期; 而他们参加战斗的结果(沉没,损坏或未受伤害-可以)属于结局关系。

笔记:

  1. 结果关系可能包括未包含在“船舶”关系中的船舶。
  2. 此后沉没舰不能参加战斗。

现在我的查询返回了正确的答案,但是在并集上却没有返回正确的值? 我的理解是,“船舶”表中不存在其中一个船舶名称,因此我从“结果”中选择了该名称来解决此问题。 但这甚至是不正确的。 我有什么想念的吗?

===============>>#1 票数:0

头船是与它们所属的类别也具有相同名称的船,我曾与之合作过,它的工作原理是:

WITH union1 (name) AS
    (SELECT name FROM ships WHERE name = class
     UNION SELECT ship AS name FROM outcomes 
     INNER JOIN classes ON classes.class = outcomes.ship)
SELECT DISTINCT name FROM union1

===============>>#2 票数:0

一个更简单的解决方案:

select name from ships where name IN (select class from classes)
UNION
select ship from outcomes where ship IN (select class from classes)

===============>>#3 票数:0

Select name from ships where name = class
union
select ship from outcomes join classes on outcomes.ship = classes.class

  ask by Help123 translate from so

未解决问题?本站智能推荐:

1回复

Sql-ex.ru-练习23

当前停留在上面的问题上,我正在使用的代码当前正在生成正确的答案,但我得到的是“您的查询在第一个(可用)数据库上返回了正确的数据集,但在第二个检查数据库上返回了不正确的数据集”。 信息。 以下是我正在使用的: 问题是:让制造商既生产速度为750 MHz或更高的PC,又生产速度为750
2回复

此查询中的错误在哪里? (sql-ex.ru练习25)

我正在尝试从sql-ex.ru解决练习25 : 数据库方案包含四个表: 产品(制造商,型号,类型) PC(代码,型号,速度,内存,高清,CD,价格) 笔记本电脑(代码,型号,速度,内存,高清,屏幕,价格) 打印机(代码,型号,颜色,类型,价格
4回复

SQL-EX.ru查询问题集#32

我正在尝试编写SQL查询来解决www.sql-ex.ru(问题32)上的问题,我得到了正确的结果,但是该网站将我的查询验证为不受欢迎的解决方案。 (可能出于各种原因:逻辑错误或效率低下等) 模式 http://www.sql-ex.ru/images/ships.gif SQ
3回复

SQL-EX.ru查询问题集#28

我正在尝试编写一个SQL查询来解决www.sql-ex.ru(问题28)中的问题,我得到了正确的结果,但我收到此错误“您的查询在第三个检查数据库上失败了。” SQL查询问题: 要在两位小数之内,定义每平方的平均涂料量。 SQL备注: 数据库模式由3个表组成:
5回复

SQL-ex.ru执行14

我正在尝试在http://www.sql-ex.ru/上解决练习14。 查询要求: 找出仅生产相同类型模型的制造商,并且这些模型的数量超过1。推论:制造商,类型 数据库架构如下: 我写了以下查询; 这不是正确的答案。 我在这里想念什么?
10回复

SQL-ex.ru#26从两个表中搜索平均值

我在网站http://www.sql-ex.ru/上有一个关于SQL查询的问题。 该查询要求: 定义制造商A生产的PC和笔记本电脑的平均价格。 数据库架构如下: 我把我的查询写成: 问题是它没有返回正确的答案。 返回的平均值远高于预期。 计算平均值的方式是
1回复

http://www.sql-ex.ru练习#39返回正确的结果,但查询中有错误

解决方案中的错误是什么? 任务是 定义“为未来战斗而生存”的船只; 在一场战斗中被破坏,他们参加了另一场战斗。 数据库说明 正在考虑参加第二次世界大战的海军舰船数据库。 该数据库具有以下关系:类(类,类型,国家/地区,数量,发射,排量)船(名称,类,发射的)战役(名称,日
1回复

www.sql-ex.ru#14

我正在尝试从众所周知的网站(我相信)www.sql-ex.ru解决问题编号14,因为我需要学习sql(我是该语言的新手)这是在stackoverflow 问题14上回答的同一问题问题StackOverflow。 我的第一种方法是: 显然这是错误的,但我不明白为什么,我一直在四处寻找,并
1回复

回答sql ex ru number 57

嗨,我正在尝试解决这个特定的问题: 对于具有不可弥补的战斗损失的类别,并且数据库中至少有三艘船只,请显示该类别的名称和沉没的船只数量。 基于此数据库:正在考虑参加第二次世界大战的海军舰船数据库。 该数据库由以下关系组成:类(类,类型,国家,数量,船名,排量)船(名称,类,发射的)战
1回复

SQL从多个表中选择SQL-EX 6

我正在尝试从sql-ex.com解决任务号6,但是我遇到了麻烦 。 接下来的问题是: 对于每家生产硬盘驱动器容量为10 Gb或更高的笔记本电脑的制造商,请找到此类笔记本电脑的速度。 结果集:制造商,速度。 数据库方案包含四个表: 这是我当前的代码: 这是不对的。