首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在两种语句之间进行计算

在两种语句之间进行计算
EN

Stack Overflow用户
提问于 2017-04-08 12:03:11
回答 2查看 36关注 0票数 0

我有两个陈述,我想计算它们的值。这两个值都必须计算为5-5=(我希望看到答案0)。

代码语言:javascript
运行
复制
SELECT COUNT(*) AS 'Aantal stoelen geboekt'
FROM Boekingsregel, Vlucht
WHERE Boekingsregel.Vlucht_Vlucht_Id = Vlucht.Vlucht_Id
AND Vlucht_Datum = '2017-04-10';

SELECT min(Vliegtuig_Aantal_Stoelen) AS 'Max aantal stoelen'
FROM Vliegtuig;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-08 12:16:50

虽然我没有看到这两个查询之间的任何关系,但您也不应该在空格中使用别名。使您的别名尽可能短,但可以定义它所包含的值,但由于这是您的查询,您比我更清楚。

对于您的问题,您可以将这两个查询合并为一个类似于以下内容的内容:

代码语言:javascript
运行
复制
SELECT BR.`Aantal stoelen geboekt` - VT.`Max aantal stoelen` AS TheResult 
FROM (SELECT COUNT(*) AS `Aantal stoelen geboekt` 
FROM Boekingsregel, Vlucht 
WHERE Boekingsregel.Vlucht_Vlucht_Id = Vlucht.Vlucht_Id 
AND Vlucht_Datum = '2017-04-10') BR,
(SELECT min(Vliegtuig_Aantal_Stoelen) AS `Max aantal stoelen` FROM Vliegtuig) VT;

注意:没有测试,我只是在这里输入它。

如果这不是你想要的,那么也许你应该更详细地解释你的需求,这样每个人都能理解,并且能够帮助你。

票数 0
EN

Stack Overflow用户

发布于 2017-04-08 12:12:07

首先,学习使用正确的JOIN语法。

其次,将它们合并到FROM子句中。

代码语言:javascript
运行
复制
SELECT COUNT(*) AS AantalStoelenGeboekt, vt.MaxAantalStoelen
FROM Boekingsregel b JOIN
     Vlucht v
     ON b.Vlucht_Vlucht_Id = v.Vlucht_Id CROSS JOIN
     (SELECT min(Vliegtuig_Aantal_Stoelen) AS MaxAantalStoelen
      FROM Vliegtuig
     ) vt
WHERE v.Vlucht_Datum = '2017-04-10';

注意: MySQL允许这种语法。也许更简单的方法是在MaxAantalStoelen上使用聚合函数。

代码语言:javascript
运行
复制
SELECT COUNT(*) AS AantalStoelenGeboekt,
       MAX(vt.MaxAantalStoelen) as MaxAantalStoelen
FROM Boekingsregel b JOIN
     Vlucht v
     ON b.Vlucht_Vlucht_Id = v.Vlucht_Id CROSS JOIN
     (SELECT min(Vliegtuig_Aantal_Stoelen) AS MaxAantalStoelen
      FROM Vliegtuig
     ) vt
WHERE v.Vlucht_Datum = '2017-04-10';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43293858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档