Mit der folgenden Frage könnten Sie mir bitte erklären, was der Unterschied zwischen den zwei SQL ist und warum sie nicht das gleiche Ergebnis haben?Warum eine Abfrage mehr als andere zurückgibt
Zeigen Sie den Nachnamen, den Abteilungsnamen und das Gehalt eines Mitarbeiters an, dessen Gehalt und Provision mit dem Gehalt und der Provision eines Mitarbeiters in Position ID1700 übereinstimmen.
SELECT E.LAST_NAME, D.DEPARTMENT_NAME, E.SALARY
FROM EMPLOYEES E
JOIN DEPARTMENTS D
ON (E.DEPARTMENT_ID =D.DEPARTMENT_ID)
WHERE E.SALARY IN (SELECT SALARY
FROM EMPLOYEES
WHERE D.LOCATION_ID = 1700) AND
E.COMMISSION_PCT IN (SELECT COMMISSION_PCT
FROM EMPLOYEES
WHERE D.LOCATION_ID = 1700);
(0 Ausgänge)
und
SELECT e.last_name, d.department_name, e.salary
FROM employees e,
departments d
WHERE e.department_id = d.department_id AND
(salary, NVL(commission_pct,0)) IN (SELECT salary,
NVL(commission_pct,0)
FROM employees e,
departments d
WHERE e.department_id = d.department_id AND
d.location_id = 1700);
(36 Ausgänge)
Welche Datenbank verwenden Sie eigentlich? Ich vermute, Oracle, und ich vermute, das ist ein Hausaufgabenproblem. –
Ja, Oracle DB. Ich versuche herauszufinden, warum die 0 Ausgänge nicht funktionieren. (Ich schrieb das selbst). Die Lösung für die Frage ist die mit den 36 Ausgängen. Ich weiß nicht, warum der SQL-i-Typ nicht korrekt ist, sieht für mich korrekt aus, basiert aber anscheinend nicht auf Ergebnissen. –
Fügen Sie einige Beispieltabellendaten und die aktuellen zwei Ergebnisse hinzu. (Auch formatierter Text.) Zeigen Sie uns auch das gewünschte Ergebnis. – jarlh