我有一个查询,该查询是我试图用postgreSQL编写的访问数据库中的查询。我在将此行iif(isNull(table2.salaried), 0, table2.salaried) - iif(isNull(table1.paymet_due), 0, table1.paymet_due) AS salary_due
转换为PostgreSQL时遇到麻烦。我很困惑的第一件事是查询中的-
。这是什么意思?如何将该行转换为PostgreSQL?
SELECT
*
FROM
(
SELECT
table1."customer_id",
iif(isNull(table2.salaried), 0, table2.salaried) - iif(isNull(table1.paymet_due), 0, table1.paymet_due) AS salary_due
--coalesce(table1.paymet_due, 0) AS salary_due
FROM
(
SELECT
tbl_archive."customer_id",
SUM(tbl_sent."grand_total_paymet_due") AS paymet_due
FROM
tbl_sent
LEFT JOIN
tbl_archive
ON tbl_sent."npi" = tbl_archive."cust_badge_numb"
)
AS table1
LEFT JOIN
(
SELECT
tbl_archive."customer_id",
SUM(wage."Amount") AS salaried
FROM
wage
LEFT JOIN
tbl_archive
ON wage."sum_amount" = tbl_archive."cust_badge_numb"
)
AS table2
ON table1."customer_id" = table2."customer_id"
)
AS tbl_salaried
这是一个简单的减法:
您可以使用coalesce
函数返回第一个非null参数。