Sql 尝试将相乘的值插入表中

Sql 尝试将相乘的值插入表中,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我试图创建一个表,其中的值显示为两个单独表中的相乘值。总共使用了五个表。我创建了两个查询,它们提供了我想要的输出 SELECT Name = Person_Exercise.Name, Minutes_Exercised * Calories_Burned_Per_Minute AS 'Calories Burned', Date FROM Person_Exercise JOIN Exercise ON Exercise.Exercise = Person_Exercise.Exerc

我试图创建一个表,其中的值显示为两个单独表中的相乘值。总共使用了五个表。我创建了两个查询,它们提供了我想要的输出

SELECT Name = Person_Exercise.Name, Minutes_Exercised * Calories_Burned_Per_Minute AS 'Calories Burned', Date
FROM Person_Exercise
    JOIN Exercise ON Exercise.Exercise = Person_Exercise.Exercise

然而,当我试着把所有的热量放在一起时,正确的总热量是远远不够的,加起来相当大。我知道这里面有些不对劲,但我不确定是什么

INSERT INTO Person_Calorie_Interaction (Name, Calories_Consumed,Calories_Burned, Net_Calories, Date)
SELECT Name = Person.Name, SUM(Servings * Calories_Per_Unit), SUM(Minutes_Exercised + Calories_Burned_Per_Minute), SUM(Servings * Calories_Per_Unit - Minutes_Exercised * Calories_Burned_Per_Minute), Date = Date.Date
FROM Person
    JOIN Person_Food ON Person_Food.Person = Person.Name
    JOIN Date ON Person_Food.Date = Date.Date
    JOIN Food ON Food.Name = Person_Food.Food
    JOIN Person_Exercise ON Person_Exercise.Name = Person.Name
    JOIN Exercise ON Exercise.Exercise = Person_Exercise.Exercise
GROUP BY Person.Name, Date.Date

是mysql还是SQL Server?请不要过度标记。初始查询中没有名为Date的表,但插入版本中有。个人也一样。使用SUM将通过语句与您的分组一起工作,并跨多行添加。另外,select语句中的括号是否有问题。。。所以应该选择Name=Person.Name,SUMServings*carories\u Per\u Unit,SUMMinutes\u Exercised+carories\u Burned\u Per\u Minute,SUMServings*carories\u Per\u Unit-Minutes\u Exercised*carories\u Burned\u Per\u Minute,Date=Date.Date我遇到的问题是Join语句导致消耗的卡路里和燃烧的卡路里增加了四倍。
INSERT INTO Person_Calorie_Interaction (Name, Calories_Consumed,Calories_Burned, Net_Calories, Date)
SELECT Name = Person.Name, SUM(Servings * Calories_Per_Unit), SUM(Minutes_Exercised + Calories_Burned_Per_Minute), SUM(Servings * Calories_Per_Unit - Minutes_Exercised * Calories_Burned_Per_Minute), Date = Date.Date
FROM Person
    JOIN Person_Food ON Person_Food.Person = Person.Name
    JOIN Date ON Person_Food.Date = Date.Date
    JOIN Food ON Food.Name = Person_Food.Food
    JOIN Person_Exercise ON Person_Exercise.Name = Person.Name
    JOIN Exercise ON Exercise.Exercise = Person_Exercise.Exercise
GROUP BY Person.Name, Date.Date