Sql 嵌套查询中的问题计数结果
我正在尝试将此查询中的结果数相加。Sql 嵌套查询中的问题计数结果,sql,ms-access,Sql,Ms Access,我正在尝试将此查询中的结果数相加。UCASE(右(出发时间,2))为我提供下午四点和上午一点,总共五点。我希望它只是一个AM列和一个PM列,EX:AM | 1,在PM | 4之上 我目前得到的错误 您的查询没有将指定的表达式“UCASE(RIGHT(DepartureTime,2))”作为聚合函数的一部分 之所以出现错误,是因为在查询中引入了聚合函数,而没有在末尾附加GROUPBY子句 通过添加按部门分组时间修改查询。groupby子句将记录分组为摘要 下面的代码应该会给出预期的结果,但我还没有
UCASE(右(出发时间,2))
为我提供下午四点和上午一点,总共五点。我希望它只是一个AM列和一个PM列,EX:AM | 1,在PM | 4之上
我目前得到的错误
您的查询没有将指定的表达式“UCASE(RIGHT(DepartureTime,2))
”作为聚合函数的一部分
之所以出现错误,是因为在查询中引入了聚合函数,而没有在末尾附加
GROUPBY
子句
通过添加按部门分组时间修改查询。groupby
子句将记录分组为摘要
下面的代码应该会给出预期的结果,但我还没有尝试过
SELECT UCASE(RIGHT(DepartureTime,2)) AS [Time of Departure], COUNT(*) AS [PassengerCount]
FROM Flight
WHERE FlightNumber IN
(SELECT FlightNumber
FROM Manifest
WHERE FlightDate BETWEEN #07/01/2016# AND #12/31/2016# AND PassengerNumber IN
(SELECT PassengerNumber
FROM Passenger
WHERE FFNumber IN
(SELECT FFNumber
FROM FrequentFlyer
WHERE PremierStatus = 3)))
GROUP BY DepartureTime;
差不多了。现在我仍然有5行,每个行中的数字1作为乘客计数。我需要添加什么才能使它只包含两行总数?这篇文章中的答案可能会有帮助-@A.North嗨,请选择一个正确的答案并向上投票,以表示感谢。干杯您应该知道,日期/时间应始终作为日期值处理,而不是字符串、数字,没有例外。因此,在国际环境中,您的查询将无法提供预期的结果,因为UCASE(右(出发时间,2))
将返回秒数,对于飞行时间,最有可能始终为“00”。
SELECT UCASE(RIGHT(DepartureTime,2)) AS [Time of Departure], COUNT(*) AS [PassengerCount]
FROM Flight
WHERE FlightNumber IN
(SELECT FlightNumber
FROM Manifest
WHERE FlightDate BETWEEN #07/01/2016# AND #12/31/2016# AND PassengerNumber IN
(SELECT PassengerNumber
FROM Passenger
WHERE FFNumber IN
(SELECT FFNumber
FROM FrequentFlyer
WHERE PremierStatus = 3)))
GROUP BY DepartureTime;