【发布时间】:2019-11-13 11:15:22
【问题描述】:
我想使用except的替代。我使用了左连接,但它没有带来所需的列数据。
SELECT ACCOUNT_NO, BILL_CYCLE_DATE, 2 FROM CSS_BILL_Job
WHERE (BILL_CYCLE_DATE = 20190526 OR BILL_CYCLE_DATE = 20190525) --33612
EXCEPT
SELECT DISTINCT ACCOUNT_NO, BILL_CYCLE_DATE, 2 FROM TempNotRunResults --33505
但是现在当我使用 LEFT JOIN 时。
SELECT A.ACCOUNT_NO, A.BILL_CYCLE_DATE, B.DATE_BILLED,
B.DATE_PAYMENT_DUE,B.TOTAL_BILL_AMT, B.LPC_AMT, B.BILL_FREQ, B.BILL_CYCLE_TYPE
FROM CSS_BILL_Job A LEFT JOIN TempNotRunResults B
ON A.ACCOUNT_NO = B.ACCOUNT_NO
WHERE (A.BILL_CYCLE_DATE = 20190526 OR A.BILL_CYCLE_DATE = 20190525)
AND A.ACCOUNT_NO NOT IN ( SELECT ACCOUNT_NO FROM TempNotRunResults)
我看到 B.DATE_PAYMENT_DUE、B.TOTAL_BILL_AMT、B.LPC_AMT、B.BILL_FREQ、B.BILL_CYCLE_TYPE 为 NULLS,这是不对的。如何在左连接查询中填充表 B 中的列?
【问题讨论】:
-
你为什么使用左连接?
-
发布一些示例数据和您想要的输出。
-
解释“除外的替代”。 PS 用于计算除了做什么的左连接习语是一个常见问题解答。 PSminimal reproducible example
-
@nick 你接受和不接受我的回答了吗?
标签: sql-server left-join except