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联接的更多信息:


您的选择中缺少tblTask

试试这个:

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将
分组