Sql 来自当前ID的总和
我得不到任何回报,有人能看到我错过的简单的叮当声吗Sql 来自当前ID的总和,sql,sql-server,tsql,sum,Sql,Sql Server,Tsql,Sum,我得不到任何回报,有人能看到我错过的简单的叮当声吗 SELECT SUM(Amount * InPrice) AS TotalItemsOrdered FROM tblMaterial WHERE [tblMaterial].[OwnerId] = [tblTask].[Id] 我需要做些不同的事情才能得到结果吗 希望得到一个简单的答案……是的,我在这方面是新手:)您需要从两个表中进行选择或加入 选择选项: SELECT SUM(Amount * InPrice) AS TotalItems
SELECT SUM(Amount * InPrice) AS TotalItemsOrdered
FROM tblMaterial
WHERE [tblMaterial].[OwnerId] = [tblTask].[Id]
我需要做些不同的事情才能得到结果吗
希望得到一个简单的答案……是的,我在这方面是新手:)您需要从两个表中进行选择或加入 选择选项:
SELECT SUM(Amount * InPrice) AS TotalItemsOrdered
FROM [tblMaterial], [tblTask]
WHERE [tblMaterial].[OwnerId] = [tblTask].[Id]
加入选项:
SELECT SUM(Amount * InPrice) AS TotalItemsOrdered
FROM [tblMaterial]
INNER JOIN [tblTask] ON [tblMaterial].[OwnerId] = [tblTask].[Id]
如果两个表中都有列,则可能还需要在SUM函数中的列前面加上表名
在这里,您可以阅读有关SQL联接的更多信息:
SELECT SUM(Amount * InPrice) AS TotalItemsOrdered
FROM tblMaterial, tblTask
WHERE tblMaterial.OwnerId = tblTask.Id
或使用连接:
SELECT SUM(Amount * InPrice) AS TotalItemsOrdered
FROM tblMaterial
INNER JOIN tblTask
ON tblMaterial.OwnerId = tblTask.Id
如果你想按
ID
SELECT tblMaterial.OwnerId
, SUM(Amount * InPrice) AS TotalItemsOrdered
FROM tblMaterial INNER JOIN tblTask ON tblMaterial.OwnerId = tblTask.Id
GROUP BY tblMaterial.OwnerId
我们怎么知道你的数据库里有什么?我们不知道您从
tblMaterial
而不是从tblTask
中选择的tblMaterial的内容,因此[tblTask].[Id]
应该是未知的。出现错误。请从tblMaterial、tblTask和tblMaterial中加入表tblMaterial和tblTask,但加入会更好。还有一个语义问题:TotalItemsOrdered并不是你真正在做的事情,因为sum(amount*inprice)可能是TotalSumOrdered。他可以使用where but in way@HerbertVan Vliet wrote这和我的答案有什么不同?谢谢,你的答案都是有效的,但我得到了hole数据库中所有东西的总和。我想当我在程序中执行时,我会从当前ID中得到总和…我想这是为了我。但是谢谢大家!谢谢,你所有的答案都有效,但我得到了洞数据库中所有东西的总数。我想当我在程序中执行时,我会从当前ID中得到总和…我想这是为了我。但是谢谢大家@克里斯托弗,如果你想给每个人一笔钱,您可以按tblMaterial.OwnerId将分组