【发布时间】:2016-04-17 21:00:34
【问题描述】:
我在 Access 2010 中有两个表:
表 1:
Key|ValTab1
1| 100
2| 200
3| 300
Tab2:
Key|ValTab2
1| 1000
1| 7000
3| 3000
4| 4000
期望的结果:
Key| Val
1| 8100
2| 200
3| 3300
是否可以在不将所有内容选择到一个表中然后将所有内容分组(在 Microsoft Access 中)的情况下执行此操作?类似的东西
SELECT Tab1.Key,Sum(Tab1.ValTab1+IIF(Tab2.ValTab2 Is Null,0,Tab2.ValTab2)) AS Val
FROM Tab1 LEFT JOIN Tab2
ON Tab1.Key = Tab2.Key
GROUP BY Tab1.Key;
但这会导致 Key 1/Val 8200
问题 #2:
将 Tab1 扩展到
Cat|Key|ValTab1
1| 1| 100
1| 2| 200
1| 3| 300
2| 4| 20
3| 5| 1
是否可以使用 Tab1.Key=Tab2.Key 从 Cat 建立连接以获取 Sum(ValTab1+ValTab2)?
将 FuzzyTree 的解决方案
max(tab1.val) + sum(tab2.val)应用于问题 #1:
这意味着类似
SELECT Tab1.Cat, Max(Tab1.ValTab1) + Sum(IIF(Tab2.ValTab2 Is Null,0,Tab2.ValTab2)) AS Val
FROM Tab1 LEFT JOIN Tab2
ON Tab1.Key = Tab2.Key
GROUP BY Tab1.Cat;
得到想要的结果:
Cat| Val
1|11600
2| 4020
3| 1
提前致谢!
【问题讨论】: