【发布时间】:2010-03-24 16:01:42
【问题描述】:
好的,我需要帮助。我通常很擅长 SQL 查询,但这让我感到困惑。顺便说一句,这不是家庭作业,它是 Access 数据库中的真实情况,我自己写了下面的要求。
这是我的表格布局。如果重要的话,它在 Access 2007 中;我正在使用 SQL 编写查询。
Id (primary key)
PersonID (foreign key)
EventDate
NumberOfCredits
SuperCredits (boolean)
人们会参加一些活动。他们可以在一次活动中获得普通学分或超级学分,或两者兼而有之。如果该行表示在活动中获得的一些超级积分,则 SuperCredits 列为 true,如果表示正常积分,则为 false。
例如,如果有一个人 174 参加的活动,并且他们在该活动中获得了 3 个普通积分和 1 个超级积分,则会将以下两行添加到表中:
ID PersonID EventDate NumberOfCredits SuperCredits
1 174 1/1/2010 3 false
2 174 1/1/2010 1 true
这个人也有可能在活动中做了两件不同的事情,所以一个活动可能有两个以上的列,它可能看起来像这样:
ID PersonID EventDate NumberOfCredits SuperCredits
1 174 1/1/2010 1 false
2 174 1/1/2010 2 false
3 174 1/1/2010 1 true
现在我们要打印一份报告。以下是报告的列:
PersonID
LastEventDate
NumberOfNormalCredits
NumberOfSuperCredits
报告将每人一行。该行将显示此人参加的最新活动,以及此人在该活动中获得的普通积分和超级积分。
我要求你编写或帮助我编写 SQL 查询以选择数据和 GROUP BY 和 SUM() 等等。 或者,如果这是由于某种原因不可能,以及如何组织我的数据以使其成为可能。
这非常令人困惑,如果您不花时间来解决它,我理解。我试图尽可能地简化它,但如果你试一试并需要澄清,一定要问任何问题。我会努力弄清楚,但我真的很难处理,这超出了我的经验......
【问题讨论】:
标签: sql ms-access ms-access-2007