作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的预算类似于以下示例,其中:
我可以将“预算”链接到“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
...
最佳答案
查看不同类型的 JOIN
:LEFT OUTER JOIN
可能是您需要的。对于左表中的每一行,左连接至少包含一行;如果右表中不存在匹配项,则其所有字段都设置为 NULL。如果存在一个或多个匹配项,则其行为与内连接完全一样。
由于 SUM
函数忽略 NULL
值,因此对结果进行分组和求和将按预期工作。
关于sql - 查询中的可选连接(...如果主表字段为空,则忽略连接),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9532401/
我是一名优秀的程序员,十分优秀!