小编zer*_*er0的帖子

无法弄清楚查询和子查询

我无法解决这个问题.我正在为大学做一些修改练习,并希望在2天之前通过我的考试.

我尝试了一些事情(最后我会发布).请善待,这是我的第一个数据库主题,所以我的尝试对你来说似乎很愚蠢.

问题如下:哪位艺术家目前拥有最多的节目?显示艺术家的名字和姓氏及其地址.ORDER BY子句不能使用.写一个SQL语句.使用子查询.

数据库中的相关表:

Shows (ShowName, ArtistId, ShowStartDate, ShowEndDate)
Artists (ArtistId, FirstName, FamilyName, Address, PhoneNum)
Run Code Online (Sandbox Code Playgroud)

我们假设ArtistId,ShowStartDate,FirstName,FamilyName和Address不能为null.

现在,我认为我必须计算每个艺术家目前的节目数量.然后,获得拥有/拥有最多的艺术家的ArtistId.使用ArtistId检索艺术家详细信息(名称和地址).

我得到了这个(这是非常错误的):

SELECT FirstName, FamilyName, Address
FROM Artists
WHERE ArtistId = (SELECT ArtistId
                  FROM Shows
                  WHERE ArtistId = (SELECT MAX(Counted) 
                                    FROM (SELECT ArtistId, COUNT(ArtistId) AS Counted
                                    FROM Shows
                                    WHERE ShowEndDate IS null
                                    GROUP BY ArtistId)
                  GROUP BY ArtistId));
Run Code Online (Sandbox Code Playgroud)

嗯,我知道

SELECT ArtistId, COUNT(ArtistId)
FROM Shows
WHERE ShowEndDate IS null
GROUP BY ArtistId
Run Code Online (Sandbox Code Playgroud)

给我一个表格,列出每个ArtistId被列出的次数.这很好.但是从这个结果表中,我需要获得具有最高计数的那个的ArtistId /.

这就是我迷失的地方.

任何人都可以轻松一点?

(至于我使用的DBMS:我们必须使用由大学创建和提供的DBMS.它是非常基本的SQL.比Access 2010简单).

谢谢

(如果你提供答案[谢谢你,谢谢你]你能否简要解释其背后的原因?)

sql

6
推荐指数
1
解决办法
151
查看次数

SQL:无法形成查询

好吧,我很难命名这个问题.但是很难用一个简单的标题来描述.

我有一个名为Stock的表有:Stock(BarCode,MagId,Format)

还有一张名为杂志的表格:杂志(MagId,Title,ReleaseDate)

有两种杂志格式:打印和在线

有些杂志只能在线或仅在印刷时使用.有些人都在.

我需要选择仅用于从Stock表打印的杂志的MagId.然后我需要列出他们的Title和ReleaseDate.

所以,我开始:

SELECT Title, ReleaseDate
FROM Magazines
WHERE MagId IN ( SELECT MagId
                    FROM Stock
                    WHERE Format = 'Print'
                    AND Format <> 'Online' );
Run Code Online (Sandbox Code Playgroud)

我没有得到预期的结果.我认为因为只选择印刷杂志的子查询是错误的.

任何人都能解释一下吗?

谢谢 :)

sql

2
推荐指数
1
解决办法
90
查看次数

标签 统计

sql ×2