SQL 访问分组依据和求和
SQL access Group By and Sum
我的 SQL 语句在 MS Access 中遇到问题。
我有公司和团队,他们各有一笔钱。
(Company1 可以有 team 1,2,3,4,Company2 可以有 team 1,2,3,4,5。虽然 Comapny1 team1 和 Company2 team1 不一样!)
但是我有很多条目,每个条目都对应一个卖家。
我想对每个公司和每个团队的所有余额求和,无论是哪个卖家:
我实际上有:
SELECT Company, Team, Sum(Balance) AS tot_balance
FROM Retro2014
GROUP BY Company, Team
但是当我手动求和时,它们的数量要大 5 到 10 倍。 (但我有1200左右的卖家,我不能全部手动完成)
编辑:我想要的是这样的:
Company Team tot_balance
------- ---- -----------
Company1 Team1 1000
Company1 Team2 1530
Company1 Team3 120
Company1 Team4 500
Company2 Team1 800
Company2 Team2 750
Company2 Team3 420
Company2 Team4 820
Company2 Team5 120
... ... ...
编辑 2:
我现在有了这些值:
Company Team tot_balance REAL_Balance
10 90 2 534.60 269.06
10 92 813.30 120.89
10 95 1 384.75 210.89
10 96 950.72 142.43
10 97 3 957.03 789.92
10 98 4 822.34 1128.71
EDIT3:源值是那些:
COMPANY TEAM SELLER BALANCE
10 50 123.65
10 90 L07630 245.06
10 90 L07630 4
10 90 L07630 8
10 90 L07630 4
10 90 L07630 8
10 92 L96420 32.93
10 92 L96420 87.96
10 95 35.74
10 95 16
10 95 4
10 95 12
10 95 12
10 95 131.15
10 96 L04771 65.5
10 96 L04771 12
10 96 L04771 8
10 96 L04771 8
10 96 L04771 48.93
10 97 L94605 61.93
10 97 L94605 4
10 97 L94605 8
10 97 L94605 233.76
10 97 L94605 344.97
10 97 L94605 90.33
10 97 L94605 38.93
10 97 L94605 4
10 97 L94605 4
10 98 L95652 42.51
10 98 L95652 34.75
10 98 L95652 549.26
10 98 L95652 320.36
10 98 L95652 20
10 98 L95652 112.58
10 98 L95652 41.25
10 98 L95652 8
谢谢,
菲尔
只要 table 不包含关于公司、团队、余额的多个条目
比你 SQL 应该工作得更好。
但是考虑到您解释的问题,我认为值比显示的值多,因此可能导致更多行显示相同的信息不止一次,这将导致不正确的求和。这是我的建议:
Select Company, Team, Sum(Balance) as tot_balance from (
SELECT Company, Team, Balance
FROM Retro2014
GROUP BY Company, Team, Balance ) as b
GROUP by Company, Team
我的 SQL 语句在 MS Access 中遇到问题。
我有公司和团队,他们各有一笔钱。 (Company1 可以有 team 1,2,3,4,Company2 可以有 team 1,2,3,4,5。虽然 Comapny1 team1 和 Company2 team1 不一样!)
但是我有很多条目,每个条目都对应一个卖家。
我想对每个公司和每个团队的所有余额求和,无论是哪个卖家:
我实际上有:
SELECT Company, Team, Sum(Balance) AS tot_balance
FROM Retro2014
GROUP BY Company, Team
但是当我手动求和时,它们的数量要大 5 到 10 倍。 (但我有1200左右的卖家,我不能全部手动完成)
编辑:我想要的是这样的:
Company Team tot_balance
------- ---- -----------
Company1 Team1 1000
Company1 Team2 1530
Company1 Team3 120
Company1 Team4 500
Company2 Team1 800
Company2 Team2 750
Company2 Team3 420
Company2 Team4 820
Company2 Team5 120
... ... ...
编辑 2:
我现在有了这些值:
Company Team tot_balance REAL_Balance
10 90 2 534.60 269.06
10 92 813.30 120.89
10 95 1 384.75 210.89
10 96 950.72 142.43
10 97 3 957.03 789.92
10 98 4 822.34 1128.71
EDIT3:源值是那些:
COMPANY TEAM SELLER BALANCE
10 50 123.65
10 90 L07630 245.06
10 90 L07630 4
10 90 L07630 8
10 90 L07630 4
10 90 L07630 8
10 92 L96420 32.93
10 92 L96420 87.96
10 95 35.74
10 95 16
10 95 4
10 95 12
10 95 12
10 95 131.15
10 96 L04771 65.5
10 96 L04771 12
10 96 L04771 8
10 96 L04771 8
10 96 L04771 48.93
10 97 L94605 61.93
10 97 L94605 4
10 97 L94605 8
10 97 L94605 233.76
10 97 L94605 344.97
10 97 L94605 90.33
10 97 L94605 38.93
10 97 L94605 4
10 97 L94605 4
10 98 L95652 42.51
10 98 L95652 34.75
10 98 L95652 549.26
10 98 L95652 320.36
10 98 L95652 20
10 98 L95652 112.58
10 98 L95652 41.25
10 98 L95652 8
谢谢,
菲尔
只要 table 不包含关于公司、团队、余额的多个条目 比你 SQL 应该工作得更好。 但是考虑到您解释的问题,我认为值比显示的值多,因此可能导致更多行显示相同的信息不止一次,这将导致不正确的求和。这是我的建议:
Select Company, Team, Sum(Balance) as tot_balance from (
SELECT Company, Team, Balance
FROM Retro2014
GROUP BY Company, Team, Balance ) as b
GROUP by Company, Team