【发布时间】:2015-03-07 23:38:57
【问题描述】:
这是我的第一篇文章,所以如果我在帖子中做错了什么,请纠正我。
我正在为钓鱼比赛创建一个计分程序。 我有以下表格(我只列出感兴趣的列:
tblScores:
|列名|
- Pk_CatchID
- Fk_AnglerID
- 天
- Fk_FishID
- 积分
tblAnglers:
|列名|
- Pk_AnglerID
- Fk_BoatID
- 姓名
tblBoats:
|列名|
- Pk_BoatID
- 船名
现在我想做的是为一整周的比赛创建一个成绩单,也就是 5 天。所以我必须对分数求和,并使用各自的外键对每艘船的分数求和。
这是我目前拥有的:
Select BoatName, " +
"Sum(tblScores.Points) AS [Day 1] " +
"from tblScores INNER JOIN tblAnglers ON tblScores.Fk_AnglerID=tblAnglers.Pk_AnglerID " +
" INNER JOIN tblBoats ON tblAnglers.Fk_BoatID=tblBoats.Pk_BoatID "
+ " where Day=1 GROUP BY BoatName
这一天工作得很好,但我想做的是在 DataGridView 中查看这些数据,其中包含每天的列,然后也是总列。
类似这样的:
|Boat Name|Day 1|Day 2|Day 3|Day 4|Day 5|Total|
|Example1 | 50 | 30 | 65 | 35 | 40 | 220 |
|Example2 | 40 | 50 | 70 | 35 | 30 | 225 |
我尝试过使用嵌套选择,但我无法让它工作。我愿意接受有关如何解决此问题的建议。
另外我的另一个想法是创建一个新表并将每天的这些分数保留在其中(甚至在船表中),但我觉得数据库的结构不会像重复数据那样好。但我可能是错的。
谢谢大家!
另外:我正在使用 Visual Studio 2013 (C#) 和 Microsoft SQL Server 2010。
【问题讨论】:
标签: c# sql-server select aggregate-functions multiple-tables