【发布时间】:2014-04-09 21:54:58
【问题描述】:
我有两个表,我正在尝试构建一个查询,该查询将对所有数字列(利润/损失)执行 JOIN 和 SUM,然后再次对所有利润和所有利润执行 SUM损失。
也许我的表格设计得很糟糕 - 任何指导都值得赞赏。
现在,我有:
表格:公司
C_ID | NAME
-------------------
1 | Abc
表格:财务
ID | COMPANY_ID | INCOME1 | INCOME2 | COST1 | COST2
------------------------------------------------------------
1 1 200
2 1 50
3 1 5
4 1 3
5 1 40
我正在寻找的输出类似于(其中 CASH 的起始值固定为 100)
C_ID | NAME | INCOME1 | INCOME2 | COST1 | COST2 | CASH
------------------------------------------------------------------
1 Abc 200 50 8 40 302
我尝试过的:
SELECT
C.C_ID, C.NAME,
SUM(F.INCOME1), SUM(F.INCOME2),
SUM(F.COST1), SUM(F.COST2),
(100 +
(SELECT SUM(F.INCOME1), SUM(F.INCOME2) FROM FINS F)
- (SELECT SUM(F.COST1), SUM(F.COST2) FROM FINS F)
)
FROM COMP C
INNER JOIN FINS F
ON C.C_ID = F.COMPANY_ID
GROUP BY C.C_ID, C.NAME
【问题讨论】:
-
在 SQL 中查找 PIVOT 运算符
-
在
200+50的收入和40+8的成本是250 - 48 = 202之后,你的现金不应该是202
标签: sql sql-server join aggregate-functions