【问题标题】:MySQL Case Query Only Getting One ResultMySQL 案例查询只得到一个结果
【发布时间】:2022-11-10 18:14:49
【问题描述】:

当结果满足 2 组标准(飞行时间和尾号)时,我试图从我的表中进行查询,但我只收到一行结果。几周前我才开始为即将到来的学校作业使用 SQL,但是在处理这个查询时遇到了问题。

SELECT FlightNumber AS 'Flight Number', 'Date', Aircraft, Aircraft_Manufacturer AS 'Aircraft Manufacturer', Tail_Number AS 'Tail Number', Departure, Arrival, FlightTime AS 'Flight Time', Instructor, Passengers, 
CASE
    WHEN SUM(FlightTime) >= 20 AND Tail_Number LIKE '24-%' THEN "RAAus Recreational Pilots Certificate (RPC)"
    WHEN SUM(FlightTime) >= 25 AND Tail_Number LIKE '24-%' THEN "RAAus RPC Passenger Endorsment"
    WHEN SUM(FlightTime) >= 32 AND Tail_Number LIKE '24-%' THEN "RAAus RPC Cross Country Endorsment"
    WHEN SUM(FlightTime) >= 7 AND Tail_Number LIKE 'VH-%' THEN "RPC Conversion to CASA Recreational Pilot License (RPL)"
    ELSE "Eligibility Checker Error"
END AS 'License Eligibility'
FROM Flight_Log ORDER BY 'Flight Number'

尽管我的表中有超过 30 行,但我得到了一个结果

我究竟做错了什么?

【问题讨论】:

    标签: mysql sql case mysql-workbench


    【解决方案1】:

    当您混合聚合函数(在您的情况下为 SUM)和 select 中的普通列时,您将需要一个 GROUP BY 语句来说明聚合函数是从哪个集合计算的。

    您还在同一级别使用FlightTimsum(FlightTime)。您希望在哪个集合上计算 sum(FlightTime)

    修改问题以包含具有预期结果的样本数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 2021-06-29
      • 1970-01-01
      • 1970-01-01
      • 2018-06-01
      • 1970-01-01
      相关资源
      最近更新 更多