Sql 在查询中添加两列的值
我有借方和贷方两栏。如果借方中有值,贷方将为空,反之亦然。我试图计算一个净金额列,它是借方-贷方 我正在使用以下工具: (总计:+NZ([借方],0)-NZ([贷方],0)) 完整查询如下所示:Sql 在查询中添加两列的值,sql,ms-access,Sql,Ms Access,我有借方和贷方两栏。如果借方中有值,贷方将为空,反之亦然。我试图计算一个净金额列,它是借方-贷方 我正在使用以下工具: (总计:+NZ([借方],0)-NZ([贷方],0)) 完整查询如下所示: INSERT INTO T_RECON ( REFERENCE, RECDATE, NET_AMOUNT, PROPID ) SELECT REFERENCE, RECDATE, NET_AMOUNT, PROPID FROM (SELECT REFERENCE, RECDATE, (Total:+NZ
INSERT INTO T_RECON ( REFERENCE, RECDATE, NET_AMOUNT, PROPID )
SELECT REFERENCE, RECDATE, NET_AMOUNT, PROPID
FROM (SELECT REFERENCE, RECDATE, (Total:+NZ([debit],0)-nz([credit],0)), PROPID
FROM LEDGER_1
WHERE PERIOD = 13 AND LEDGER_ACCOUNT = '55971'
UNION ALL
SELECT REFERENCE, RECDATE, (Total:+NZ([debit],0)-nz([credit],0)), PROPID
FROM LEDGER_2
WHERE PERIOD = 13 AND LEDGER_ACCOUNT = '55971'
);
我希望在
NET\u AMOUNT
字段中只看到借贷显示。然而,在上面我得到了一个语法错误。当我排除代码的NET\u AMOUNT
部分时,我的查询工作正常您混淆了Access的设计视图和用于分配计算列的SQL视图。SQL列别名需要表达式后面的AS
运算符,而不是表达式前面的冒号分隔符。并确保列别名对应于外部级别查询列名:
SELECT ... NZ([debit],0)-NZ([credit],0) AS NET_AMOUNT, ...
您可以在设计视图中使用冒号方法,它将在sql视图中使用AS
运算符进行转换。在查询单元格中放置以下位置:
NET_AMOUNT: NZ([debit],0)-NZ([credit],0)
在分配计算列时,您混淆了Access的设计视图和SQL视图。SQL列别名需要表达式后面的
AS
运算符,而不是表达式前面的冒号分隔符。并确保列别名对应于外部级别查询列名:
SELECT ... NZ([debit],0)-NZ([credit],0) AS NET_AMOUNT, ...
您可以在设计视图中使用冒号方法,它将在sql视图中使用AS
运算符进行转换。在查询单元格中放置以下位置:
NET_AMOUNT: NZ([debit],0)-NZ([credit],0)
查看完整的错误消息会很有帮助。但我认为您需要为子查询中的列和子查询本身指定一个名称:
INSERT INTO T_RECON ( REFERENCE, RECDATE, NET_AMOUNT, PROPID )
SELECT REFERENCE, RECDATE, NET_AMOUNT, PROPID
FROM (SELECT REFERENCE, RECDATE, (Total:+NZ([debit],0)-nz([credit],0)) AS NET_AMOUNT, PROPID
FROM LEDGER_1
WHERE PERIOD = 13 AND LEDGER_ACCOUNT = '55971'
UNION ALL
SELECT REFERENCE, RECDATE, (Total:+NZ([debit],0)-nz([credit],0)), PROPID
FROM LEDGER_2
WHERE PERIOD = 13 AND LEDGER_ACCOUNT = '55971'
) AS QRY;
查看完整的错误消息会很有帮助。但我认为您需要为子查询中的列和子查询本身指定一个名称:
INSERT INTO T_RECON ( REFERENCE, RECDATE, NET_AMOUNT, PROPID )
SELECT REFERENCE, RECDATE, NET_AMOUNT, PROPID
FROM (SELECT REFERENCE, RECDATE, (Total:+NZ([debit],0)-nz([credit],0)) AS NET_AMOUNT, PROPID
FROM LEDGER_1
WHERE PERIOD = 13 AND LEDGER_ACCOUNT = '55971'
UNION ALL
SELECT REFERENCE, RECDATE, (Total:+NZ([debit],0)-nz([credit],0)), PROPID
FROM LEDGER_2
WHERE PERIOD = 13 AND LEDGER_ACCOUNT = '55971'
) AS QRY;
明亮的非常感谢你。非常感谢您……
Total:
在Access SQL中实际工作吗?除非在串联字符串表达式中引用,否则不能。Hmmm..Total:
是否在Access SQL中实际工作?除非在串联字符串表达式中引用,否则不能。