我有两个表:项目表和发票
项目表:
ID | UR_No | Budget_Total | Budget_To_Date
1 | 329000 | 150000.00 |
2 | 403952-C | 33000 |
发票表:
ID | URID | InvAmount
1 | 329000 | 157.00
2 | 329000 | 32.00
3 | 403952-C| 193.00
“发票”表已计入一个项目的金额。一个项目具有唯一的UR号(UR_No),并且发票具有重复的UR号(URID),这意味着同一个项目按月计费并且具有不同的发票号。
我想要实现的是:
ID | UR_No | Budget_Total | Budget_To_Date
1 | 329000 | 150000.00 | 149811.00
2 | 403952-C | 33000 | 32807
首先,在“发票”表上进行汇总查询,以获取向项目收取的运行资金总额:
SELECT Invoice.URID, Sum(Invoice.InvAmount) AS total
FROM Invoice
GROUP BY Invoice.URID;
这将返回以下内容:
URID | InvAmount
329000 | 189.00
403952-C| 193.00
然后将其导出到数据库中名为Invoice_Totals的表
然后,我想使用UR_No和URID将Invoice_Totals表连接到Project表,并通过从项目表中名为Budget_total的字段中减去查询表中的Invoice_Totals.total来计算Project表中现有的空字段“ Budget_to_Date” 。在尝试该操作之前,我只想查询返回值:
SELECT Project.Budget_Total - Invoice_Totals.total
FROM Project INNER JOIN Invoice_Totals ON Project.UR_No = Invoice_Totals.URID;
这将返回错误: 无法加入备注,OLE或超链接对象(Project.UR_No = Invoice_Totals.URID)
我查找了一条SO帖子,并尝试使用左255:
SELECT Project.Budget_Total - Invoice_Totals.total
FROM Project INNER JOIN Invoice_Totals ON left(Project.UR_No,255) = left(Invoice_Totals.URID, 255);
这不返回任何内容。如果可能的话,如何从“预算”到“日期”字段或新字段的“项目”表中的预算总额中减去汇总字段?
答案 0 :(得分:0)
您的注释状态链接字段是LongText,它是Memo数据类型的同义词,因此错误消息清楚地标识了原因。将字段类型更改为ShortText。
但是,实际上应该将Project表中的ID字段用作主键,并将其(而不是UR_No)保存到Invoice表中。数字是更有效的键。