Ich bin überrascht von den Ergebnissen einer Abfrage und hoffe, dass jemand es erklären kann.LINKS Outer join + where Klausel unerwartete Ergebnisse
Die Abfrage ist eine Art groß, so dass ich destilliert zum Schlüssel Teil:
SELECT *
FROM A
INNER JOIN B ON A.id = B.id
LEFT JOIN C ON C.ID = B.ID
WHERE A.Dt = '2016-06-23'
AND (B.StatusCode=' ' OR C.Code <> 9)
ich anderen Zeitpunkten als 6/23/16 immer bin, obwohl ich es in meiner where-Klausel. Ich denke, es hat damit zu tun, Spalten in meiner where-Klausel aus einer Left-Joined-Tabelle und einer inneren Join-Tabelle in einem Ausdruck zu kombinieren, dies aber noch nie zuvor erlebt zu haben.
UPDATE: Hinzufügen eigentliche Abfrage
SELECT *
FROM CERT2.cube_mbbal_Daily_Balances BAL
INNER JOIN CERT.Dim_Account A ON A.AccountKey = BAL.AccountKey
LEFT JOIN CERT2.Dim_LoanAccount LA ON A.AccountKey = LA.AccountKey
WHERE
(A.AccountClassification IN ('Checking', 'Savings')
AND AccountStatus IN ('1', '3', '5', '6', '7'))
OR
(A.AccountClassification IN ('Time')
AND AccountStatus IN ('1', '5', '7'))
OR
(A.AccountClassification IN ('Loan')
AND (AccountStatus <> 'C' OR RiskCode <> 9))
AND BAL.DateOfFinancialMeasure = 20160623
Ihre a.dt Zustand bewegen, um innere Verknüpfung und sehen – techspider
Sie über die Abfrage vereinfacht haben. Ihre 'WHERE'-Klausel kann kein anderes als das angegebene Datum zurückgeben. –
@techspider zustimmen, ich vermute, es gibt eine 1 zu viele auf B oder C und das verursacht das Problem –