抱歉标题,但我想不出更好的主题来解决我的问题。
我有两个表在它们之间存在多对一关系,并且在同一个表中还有另一个多对一关系。我需要对与第一个表的列中的聚合相对应的列求和。
这是一张图片,说明了我想要什么:
我不知道该怎么做。
抱歉标题,但我想不出更好的主题来解决我的问题。
我有两个表在它们之间存在多对一关系,并且在同一个表中还有另一个多对一关系。我需要对与第一个表的列中的聚合相对应的列求和。
这是一张图片,说明了我想要什么:
我不知道该怎么做。
这应该这样做:
SELECT ISNULL(E.idParent,E.id) Id,
SUM(I.Value) [Sum]
FROM EXPENSE_TABLE E
LEFT JOIN INVOICE_TABLE I
ON I.idExpense = E.id
GROUP BY ISNULL(E.idParent,E.id)
对于更新的要求:
SELECT ISNULL(E.idParent,E.id) Id,
E2.[description],
SUM(I.Value) [Sum]
FROM EXPENSE_TABLE E
LEFT JOIN INVOICE_TABLE I
ON I.idExpense = E.id
INNER JOIN EXPENSE_TABLE E2
ON ISNULL(E.idParent,E.id) = E2.id
GROUP BY ISNULL(E.idParent,E.id),
E2.[description]
您可以通过对连接到 INVOICE_TABLE 的 EXPENSE_TABLE 的结果执行聚合求和操作来获得所需的结果。
例如:
SELECT e.idParent, SUM(i.value)
FROM EXPENSE_TABLE AS e
INNER JOIN INVOICE_TABLE AS i ON i.idExpense = e.id
GROUP BY e.idParent
ORDER BY e.idParent