当表2中存在行时,SQL从表1中减去值

时间:2015-10-03 04:56:52

标签: sql database ms-access

我有两个表,tblTask​​s和tblOffsets。 tblTask​​s拥有所有这些正在获得资助的任务,并且tblOffsets引用了由外部资金资助的tblTask​​s中的行。

两者都有相同的列,除了tblOffsets有一个名为" Source"的额外列。跟踪钱的来源。

  

     

拨款,PerformerGroup,执行者,合同,ID,IDExt,人工,材料,旅行,财政年度

主键实际上是此表中列的集合:Appropriation,PerformerGroup,Performer,Contract,FiscalYear,ID和IDExt。每行都有这些列的唯一组合。

现在我想做的是得到一个子查询(或者我可能需要创建一个新表?),它接受tblTask​​s并从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一直要求拨款等的输入。这两个表有不同行数的问题吗?

0 个答案:

没有答案