【发布时间】:2016-11-15 10:28:33
【问题描述】:
我有以下
表:
Cursistcursus
电子邮件地址
Cursuscode
SoortCursus
SortCode
Cursussoort
普瑞斯
马克斯库斯滕
诅咒
Cursuscode
开始
Einddatum
排序代码
这是我当前的查询:
SELECT DISTINCT Cursus.Cursuscode, SoortCursus.SoortCode, SoortCursus.Maxcursisten, Cursus.Soortcode, COUNT(Cursistcursus.Cursuscode) as Bezetting, Cursus.Begindatum, Cursus.Einddatum, SoortCursus.Cursussoort, SoortCursus.Prijs
FROM Cursistcursus,Cursus
INNER JOIN SoortCursus
ON SoortCursus.SoortCode = Cursus.Soortcode
WHERE (SELECT COUNT(Cursuscode) FROM Cursistcursus) <= SoortCursus.Maxcursisten";
它需要做的是:
我想从 Soortcursus 获得 Cursussoort,其中 Soortcode 是相同的。我想计算每个 Cursuscode 的 Cursistcursus 数量。这样我就可以检查具有相同 Cursuscode 的 CursistCursus 是否比 Maxcursisten 少。
我已经尝试了 4 个多小时了!
样本数据:
课程
(1, 2016-11-13, 2016-11-19, BEG)
(2, 2016-11-13, 2016-11-19, GEV)
(3, 2016-11-13, 2016-11-19, WAD)
SoortCursus
(BEG, Beginnerscursus, 700.00, 7)
(GEV, Gevorderdencursus, 800.00, 5)
(WAD, 瓦登托赫特, 900.00, 10)
CursistCursus
(1、Test@test.com)
(1、Test@test.com)
(1、Test@test.com)
(1、Test@test.com)
(1、Test@test.com)
(1、Test@test.com)
(1、Test@test.com)
(2、Test2@test.com)
SELECT DISTINCT Cursus.Cursuscode, SoortCursus.SoortCode, SoortCursus.Maxcursisten, Cursus.Soortcode, Cursus.Begindatum, Cursus.Einddatum, SoortCursus.Cursussoort, SoortCursus.Prijs FROM Cursus INNER JOIN SoortCursus
ON SoortCursus.SoortCode = Cursus.Soortcode WHERE (SELECT COUNT(Cursuscode) AS Bezetting FROM Cursistcursus) < SoortCursus.Maxcursisten GROUP BY Cursuscode
这给了我正确的 Cursussoort 但是每个 Maxcursisten 都得到 7!
【问题讨论】:
-
我现在尝试了很多方法,分组方式、地点和拥有
-
提供样本数据和预期结果
-
你的表名让我觉得这是一部指环王电影。
-
请显示示例数据,或者不显示,然后清楚地告诉我们这些表是如何相互关联的。
-
@TimBiegeleisen 完成
标签: sql inner-join where