我有两个表:

Membership
mID     StartingDate    Name     Address     Gender      EndingDate

Circulation Info
ISBN    mID    DateOfBorrow    DateOfReturn    DateOfLoss

我正在尝试找到每种性别的活动水平,但是到目前为止,我还没有那么幸运。

到目前为止,这是我尝试过的:

SELECT Membership.Gender, [Circulation Info].mID, Membership.mID
FROM [Circulation Info] AS c INNER JOIN Membership AS m ON [Circulation Info].mID = Membership.mID
GROUP BY m.mID
HAVING Membership.Gender='F'

尝试运行此语法时,我收到语法错误,它将我带到第一行的“流通信息”。

===============>>#1 票数:2

原因是您为表设置了别名,但是使用表名作为列名的前缀而不是别名。 尝试这个:

SELECT m.Gender, c.mID, m.mID
FROM [Circulation Info] AS c INNER JOIN Membership AS m ON c.mID = m.mID
GROUP BY m.mID
HAVING m.Gender='F';

===============>>#2 票数:1

您正在为表使用别名,因此请使用别名。

SELECT m.Gender, c.mID, m.mID
FROM [Circulation Info] AS c INNER JOIN Membership AS m ON c.mID = m.mID
GROUP BY m.mID
HAVING m.Gender='F'

===============>>#3 票数:1 已采纳

除了关于表别名的问题(当给表加上别名时,必须使用该别名而不是表名来限定字段名),我认为您还希望Count()函数为您提供“活动级别” 。

另请注意,Access通常会抱怨SELECT子句中的任何字段表达式,该字段表达式不包含在GROUP BY ,也不是聚合表达式( Min()Max()Count()等)。

我不明白为什么在SELECT列表中需要同时使用c.mIDm.mID 每行应该相同。 还可以考虑将标准m.Gender='F'HAVING移到WHERE子句。

SELECT m.mID, Count(*) AS activity_level
FROM
    [Circulation Info] AS c
    INNER JOIN Membership AS m
    ON c.mID = m.mID
WHERE m.Gender='F'
GROUP BY m.mID;

  ask by freeWind translate from so

未解决问题?本站智能推荐:

4回复

寻找多性别的患者

我需要找到记录有多种性别的患者。 (我希望我知道如何创建表。) 在这里我们可以看到患者1和2都可以,但是患者3有多种性别。 (系统中有4种可用性别)。 列是[Hospital Number]和[Sex Code] ,该表称为Table1 。
1回复

SQL-计算性别的出现

我是SQL新手,正在创建电影租借网站数据库。 我必须显示数据库的一些摘要统计信息,因此我打算显示选择了具有特定认证的电影以供出租的男性和女性人数。 我想要的输出是: 此查询的相关表为: FILM和MEMBER表应该是不言自明的,而LIST是MEMBER希望租借的电影的一部
1回复

SQL更新库存水平

运行以下代码时出现此错误: 我知道第一条语句可以正常运行,但是第二条语句会引发该错误,我对这样复杂的更新语句不熟悉,因此任何具有SQL知识的人都可以发现任何东西吗? 提前致谢, 鲍勃·P
1回复

SQL将垂直列转换为水平和计数值

我确实需要您的帮助,并且从SQL的角度来看,我似乎不太想像SQL程序员那样尝试获取以下结果集。 请考虑下表(这是我的MS Access MDB文件的快照: 我需要您的帮助才能基本捕获指标(每种请求类型的出现次数/计数,然后按部门进行排序),从而得到以下新结果集:
1回复

在访问中将垂直表变为水平

我有这张桌子: 我想将其转换为此。 (该ID将是唯一的,并且同一ID的每个重复ID的名称都会添加到新字段中。 在Access中有没有一种快速的方法可以做到这一点。 VBA代码正常。 我尝试了Pivot和转置(在Excel中)都无法正常工作,或者没有给我想要的结果。 像(第
3回复

垂直到水平表,按月分组

长时间潜伏-第一次海报。 我是Access的新手,有一个要通过查询操作的数据表。 目前来看: ID | $Value | Month 1 | 184 | 10/1/2012 1 | 186 | 11/1/2012 1 | 176
2回复

查找丢失的钥匙

我可以加快Access 2007年的声明吗? 我想在p表中找到不在zipcodes表中的(zipcode,place)组合。 p表相当大,但当减少到tmp有大约40.000个条目。 zipcodes表有大约15.000个条目。 zipcodes表被索引(zipcode,plac
4回复

选择查找多个IF

我正在两个表之间进行内部联接,其中一个是关联表,因此存在多对一关系。 我正在尝试提出一个查询,该查询可以确定联接上的键是否存在一次,而不是在更新列中存储值倍数,但是不能确定实现此目的的有效方法: 问题在于,子查询将获取在appid上重复的正确名称,但是主SELECT查询将获取所有app
1回复

查找范围内的值

SQL新手在这里。 我正在尝试使用between函数从AgeBrackets表中基于列表中的年龄获取适当的年龄类别。 GetAgeCategory查询: 我对TRANSACTIONS表进行了计数,与GetAgeCategory查询相比,该表上有更多记录。 由于某种原因,该查询从
3回复

查询查找库存

如何找到股票..? 我有一个“事务”表,其中有ProductID(int),TransactionType(boolean),Qty(int)等字段。 在我们购买时,TransactionType为True,而在我们销售时,TransactionType为False .. 如