我的预算类似于下面的示例,其中:
我可以将预算链接到Summary_of_spend,但我需要做的是始终链接年份和预算类型,但仅限于预算中存在的人员.如果预算中没有人,则默认将该组的金额加在一起.
我如何创建一个为此做的连接?
(对不起,以前没有遇到过这样的事情,也不确定它的用途,更不用说如何解决了.顺便说一下,我正在使用SQLite.)
Budgets
YEAR, TYPE, PERSON, AMOUNT
2010, Sales, Bob, 1000
2010, Sales, John, 1000
2010, Sales, Fred, 1000
2010, Marketing, Null, 5000
2010, Special, Null, 3000
2010, Special, Bob, 1000
2011, Sales_budget, Bob, 1100
2011, Sales_budget, John, 1100
2011, Sales_budget, Fred, 1100
2011, Marketing, Null, 6000
2010, Special, Null, 3000
2010, Special, Bob, 1000
Spend
DATE, BUDGET, PERSON, AMOUNT
01/01/2010, Sales, Bob, 50
02/01/2010, Marketing, Bob, 100
...
Summary_of_spend
YEAR, BUDGET, PERSON, AMOUNT
2010, Sales, Bob, 950
2010, Sales, John, 888
2010, Marketing, Bob, 500
2010, Marketing, John, 500
2010, Marketing, Fred, 500
2010, Special, Bob, 333
2010, Special, John, 222
2010, Special, Fred, 222
...
Budget_and_summary_of_spend
YEAR, BUDGET_TYPE, PERSON, BUDGET_AMOUNT, SPEND_AMOUNT
2010, Sales, Bob, 1000, 950
2010, Sales, John, 1000, 888
2010, Sales, Fred, 1000, 0
2010, Marketing, Null, 5000, 1500
2010, Special, Null, 3000, 444
2010, Special, Bob, 1000, 333
...
查看不同类型的JOINs:LEFT OUTER JOIN可能是您需要的.左连接包含左表中每行的至少一行; 如果右表中不存在匹配项,则其所有字段都设置为NULL.如果存在一个或多个匹配项,则其行为与内部联接完全相同.
由于该SUM函数忽略了NULL值,因此对结果进行分组和求和将按预期工作.
| 归档时间: | 
 | 
| 查看次数: | 6184 次 | 
| 最近记录: |