我使用以下查询从External_Blk_Itm_Contracts表中检索记录。
所以在BudContractSummary表中我有TankId和ContractId。
所以这里我要从External_Blk_Itm_Contracts表中检索所有记录,条件是相同的TankId和contractId不应该在BudContractSummary表中
但可以是不同的组合。但不是同一个组合
我该怎么做
SELECT BTANK.TANKID, BCON.CONTRACTID FROM External_Blk_Itm_Contracts EBIC
INNER JOIN BUDTERMINALS BT ON BT.MBFTERMINALNAME = EBIC.TerminalName
INNER JOIN BudCustomers BC ON BC.LegalName = EBIC.CustomerName
INNER JOIN BUDCONTRACTS BCON ON BCON.CONTRACTNAME = EBIC.ContractName AND BCON.TERMINALID = BT.TERMINALID AND BCON.CUSTOMERID = BC.CustomerID
INNER JOIN BUDTANKS BTANK ON BTANK.TERMINALID = BT.TERMINALID
LEFT JOIN BudContractSummary BCS ON BCS.TankID = BTANK.TANKID AND BCS.ContractID = BCON.CONTRACTID
答案 0 :(得分:1)
要获取不在BudContractSummary中且具有相同TankID和ContractID的记录,请添加一个查找BCS.TankID IS NULL的WHERE条件,如下所示:
WHERE BCS.TankID IS NULL
由于您使用TankID和ContractID在该表上完成了左连接,因此WHERE条件将从结果集中删除这些记录。