mysql - 具有聚合的关系代数

标签 mysql sql

对于今天收治10人以上的每个病区,列出病区名称、病区类型和每个病区的床位数

给出以下架构:

Patient(PatNo, patName, patAddress, DOB)
Ward (wardNo, wardName, wardType, noOfBeds)
Contains (PatNo, WardNo, admissionDate)

这是我的SQL:

select PatNo, wardNo, wardName, wardType, noOfBeds
  from Ward w , Contains c
 where w.wardNo = c.WardNo 
   and count(c.patNo) > 10 
   and c.admissionDate = getDate();

我不明白如何将聚合与关系代数结合使用。

最佳答案

两件事。首先,

and c.admissionDate = getDate();

getDate() 返回一个日期时间,所以这几乎不会返回任何东西。你可能想要

and c.admissionDate = cast(getDate() as date);

接下来,您不希望在 where 子句中进行聚合。您想要:

having count(c.PatNo) > 10

and (subquery to get admitted patient count) > 10

关于mysql - 具有聚合的关系代数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16121099/

相关文章:

SQL Server 2000奇怪的子查询问题

sql - 在尝试更改之前如何检查数据库中是否使用了行?

c# - T-SQL LIKE与ASP.net参数中的通配符

c# - .NET MySqlTransactions 是否在本地进行批处理/缓冲?

mysql - 如何使用另一个查询向我的查询添加列?

php - 将数据库信息显示为复选框

java.sql.SQLException : Access denied for user 'root' @'localhost'

javascript - 将文本输入或选择选项发布到数据库,具体取决于选择哪个选项

MySQL : Concat in where clause not working

c++ - 使用 OTL 库从 C++ 程序将数据插入 mysql 表