Sql 在查询中添加两列的值

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

我有借方和贷方两栏。如果借方中有值,贷方将为空,反之亦然。我试图计算一个净金额列,它是借方-贷方

我正在使用以下工具:

(总计:+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([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中实际工作?除非在串联字符串表达式中引用,否则不能。