我没有数据库架构师,但是我的雇主让我遇到了一个我不确定如何解决的问题,因为我是一位精通计算机的地质学家"。
他们有一个数据库,其中有一个名为" wellExpenses"的表。在该表中,有一些费用与名为" wellInvoices"的表相关联。他们希望我创建一个查询,提供减去适当费用的井的小计。但是,并不总是与每口井相关的费用。
因此,虽然wellInvoices表中可能有300个条目,但wellExpenses表中只有大约75个条目。
我需要做的是像下面的伪代码:
If “wellNum” exists in “expenseTable”:
“wellSubtotal” (in wellTable) = “wellSubtotal” (in wellTable) -
“expenseSubtotal” (in “expenseTable”)
Else:
“wellSubtotal” (in wellTable) = “wellSubtotal” (in wellTable)
我如何在SQL中执行此操作?或MS Access中的任何其他方式
答案 0 :(得分:0)
在不知道表格结构的情况下很难提供建议,但由于您的wellExpenses
表格可能不一定包含wellInvoices
表格中每条记录的相应记录,因此LEFT JOIN
从wellInvoices
到wellExpenses
是合适的 - 例如:
SELECT
wellInvoices.wellNum,
wellInvoices.wellSubtotal-Nz(wellExpenses.expenseSubtotal,0) AS wellTotal
FROM
wellInvoices LEFT JOIN wellExpenses ON wellInvoices.wellNum = wellExpenses.wellNum