SQL将数据从表复制到另一个表并计数值

时间:2018-10-02 07:00:01

标签: sql ms-access-2010 sql-insert

我现在被困住了。我正在MS Access中为我们的体育俱乐部创建体育数据库,并且有以下问题...

所以我有: Tbl_Player(玩家ID,名字,姓氏,位置,最小发挥,进球,助攻,黄色,红色)

Tbl_Player_Match(FK Tbl_Player_Player_ID,最小打,进球,助攻,黄色,红色)。

我需要以下的努力。当添加匹配项并将数据保存在tbl_Player_Match中时,我需要将其保存在Tum_Player的“摘要”表中。

我无法为此找到正确的语法,是否应该使用统计信息创建另一个临时表?我应该在这里简单地添加一个SQL代码吗?

非常感谢您的帮助。

鲍勃

2 个答案:

答案 0 :(得分:0)

我告诉你,你不应该在tbl_Player中存储一个求和值。仅存在播放器的特征,例如名称,位置等。 对于Output,您将创建一个查询,该查询将如下所示:

Select p.Player_ID, p.Firsname, p.Lastname, p.position, SUM(pm.Min_Played) as Sum_Min_Played //, Count(pm.Tbl_Player_Match_ID) as Matches_Played From Tbl_Player p inner join Tbl_Player_Match pm on p.Player_ID = pm.Tbl_Player_Player_ID group by p.Player_ID, p.Firsname, p.Lastname, p.position

如果有,Matches_Played只是一个附加项。例如匹配表的ID。 告诉我它是否对您有帮助。

答案 1 :(得分:0)

我强烈建议仅使用查询在运行时提取总计:

SELECT  ID
        , Naam
        , Achtenaam
        , SUM(Goals) as Total
FROM    Speler LEFT JOIN SpelerStats ON Speler.ID = SpelerStats.Speler
GROUP BY ID
        , Naam
        , Achtenaam  

如果必须将其添加到表中,则必须使用domain aggregate function

UPDATE  Speler
SET     Total = DSUM("Goals","SpelerStats","SpelerStats.Speler = " & Speler.ID)