我有三个要使用的表。
我试图在单个查询中获取结果,该查询将从AccountingLine表返回所有行,并从Budget和Actuals表中求和每个AccountingLine的金额。
使用下面的SQL,SUM不适用于预算或实际数据。如果删除联接之一和SUM函数之一,则它将为单个联接表正确计算。非常奇怪…在MySQL的三个或更多表上有人通过多个SUM函数遇到这个问题吗?
SELECT A.*, SUM(B.`amount`) AS BudgetAmount, SUM(ACT.`amount`) as ActualAmount
FROM accounting_line A
LEFT JOIN budget B ON B.accounting_line_id = A.accounting_line_id
LEFT JOIN actual ACT ON ACT.accounting_line_id = A.accounting_line_id
GROUP BY A.`accounting_line_id`
通过发布上面的声明,我希望看到accounting_line字段,每个accounting_line的预算金额之和和每个accounting_line的实际金额之和。
我到处搜索,找不到多个SUM函数的实例。非常感谢您的任何建议。
乔希
表数据如下:
Table: AccountingLine
act_line_id department
----------------------------------
1 Sales
2 HumanResources
Table: Budget
budget_id actg_line_id amount
----------------------------------------------
1 1 3500.00
2 2 5000.00
3 2 15000.00
Table: Actual
actual_id actg_line_id amount
----------------------------------------------
1 1 1000.00
2 2 500.00
3 2 9000.00
Ajoin
重复另一个表中的每个匹配行。因此,如果在三个表中有3行并将它们连接在一起,则最终将有9行。如果求和,第二张和第三张表的每个和都太高3倍。
一种解决方案是对子查询求和,以使join
唯一的查询找到一行:
SELECT A.*
, B.SumAmount as BudgetAmount
, ACT.SumAmount as ActualAmount
FROM accounting_line A
LEFT JOIN
(
select accounting_line_id
, sum(amount) as SumAmount
from budget
group by
accounting_line_id
) as B
ON B.accounting_line_id = A.accounting_line_id
LEFT JOIN
(
select accounting_line_id
, sum(amount) as SumAmount
from actual
group by
accounting_line_id
) as ACT
ON ACT.accounting_line_id = A.accounting_line_id
问题内容: 我正在寻找一个hibernate标准以获取以下信息: Dokument.class映射到角色roleId Role.class具有一个ContactPerson contactId Contact.class名字姓 我想在Contact类中搜索名字或姓氏,并检索连接的Dokuments列表。 我已经尝试过这样的事情: 我收到错误,无法为类“ Dokument”解析属性“ LastNam
问题内容: 我试图在一个视图中联接3个表;情况如下: 我有一张桌子,其中包含正在申请住在此大学校园的学生的信息。我还有另一个表格,列出了每个学生的“大厅偏好设置”(其中有3个)。但是这些首选项只是一个ID号,并且ID号在第三张表中有一个对应的Hall Name(不是设计此数据库…)。 差不多,我在桌子上看到了他们的偏好和他们的信息,结果是… 哪里会是。所以现在我想将其与第三个表匹配,该表包含一个和
问题内容: 我有两个表:和。 我想基于item_number从两个表中检索数据,并且在以下查询中工作正常。(使用内联接) 但是我也希望’items’表中的所有行,即使在opensalesorder和items中找不到与ItemName匹配的内容。 但是使用下面的查询似乎对我不起作用。 即使在左侧找不到匹配项,右联接也会从右表返回结果。 查询正确吗? 谢谢 问题答案: 这是您的查询: 该条件是“撤销
我想通过聊天Id获得用户和组之间的聊天次数。但查询没有给出聊天次数。它是空白的。我在堆栈溢出(Laravel Elount groupBy()和count,Laravel get count of results Basin groupBy)中也看到过类似的问题,并使用了那些标记为正确但仍然没有得到所需结果的查询。 我使用以下查询: 我的表格结构如下: 结果是这样的: )
当我分组和求和时,我怎样才能绕过这个并保留C栏呢?
我有一堆数据帧,我连接成一个大数据帧。所有行都有一个datetime、一个名称,然后是一些具有随机值的列,例如,数据帧可以如下所示: 现在,我需要按对这些行进行分组,并将它们分成60分钟的bins,我目前的做法如下: 这可以用任何方式来完成吗?或者我必须将我的数据帧一分为二,然后在之后加入?