我有两个表,tblTasks和tblOffsets。 tblTasks拥有所有这些正在获得资助的任务,并且tblOffsets引用了由外部资金资助的tblTasks中的行。
两者都有相同的列,除了tblOffsets有一个名为" Source"的额外列。跟踪钱的来源。
列
拨款,PerformerGroup,执行者,合同,ID,IDExt,人工,材料,旅行,财政年度
主键实际上是此表中列的集合:Appropriation,PerformerGroup,Performer,Contract,FiscalYear,ID和IDExt。每行都有这些列的唯一组合。
现在我想做的是得到一个子查询(或者我可能需要创建一个新表?),它接受tblTasks并从tblOffsets中减去tblOffsets中存在的行的值。
我试图编写这段代码显然不起作用,但它应该让你知道我在说什么:
SELECT
tb.Appropriation,
tb.PerformerGroupID,
tb.PerformerID,
tb.Contract,
tb.ID,
tb.IDExt,
(tb.Labor - o.Labor) AS Labor,
(tb.Material - o.Material) AS Material,
(tb.Travel - o.Travel) AS Travel
FROM tblTaskBooks tb, tblOffsets o
WHERE tblTaskBooks.Appropriation = tblOffsets.Appropriation
AND tblTaskBooks.PerformerGroupID= tblOffsets.PerformerGroupID
AND tblTaskBooks.PerformerID = tblOffsets.PerformerID
AND tblTaskBooks.Contract = tblOffsets.Contract
AND tblTaskBooks.ID = tblOffsets.ID
AND tblTaskBooks.IDExt = tblOffsets.IDExt
AND tblTaskBooks.FiscalYear = tblOffsets.FiscalYear
当我这样做时,Access一直要求拨款等的输入。这两个表有不同行数的问题吗?