• "Studienservice.de, eine Seite von und für Fernstudenten der FernUni Hagen, ersetzt den Smalltalk in der Mensa" Handelsblatt Karriere

SQL VIEW Frage

Unser Sponsor SAP 4 Students
sind beide SQL Abfragen das gleiche (erste Musterlösung) zweite wäre meine Lösung gewesen.


CREATE VIEW Ansicht ( ARTNR, ARTBEZ, EINKAUFSPREIS, VERKAUFSPREIS) AS
SELECT *
FROM ARTIKEL
WHERE ARTIKEL.ARTNR IN
(SELECT ARTNR
FROM PROD_GRUPPE
WHERE GRUPPENNR IN (93,97))
-----------------
CREATE VIEW Ansicht (ARTNR, ARTBEZ, EINKAUFSPREIS, VERKAUFSPREIS) AS
SELECT ARTNR, ARTBEZ, EINKAUFSPREIS, VERKAUFSPREIS
FROM ARTIKEL, PROD_GRUPPE
WHERE ARTIKEL.ARTNR = PROD_GRUPPE. ARTNR
AND GRUPPENNR = 93 OR GRUPPENNR = 97

Danke euch

Hat jemand ein kleines Programm wo man diese SQL Abfrage ausprobieren kann ?
 
Dr Franke Ghostwriter
Mit ein bisschen Aufwand kann man das bestimmt in SQL Fiddle ausprobieren.
Ich glaube, dass deine Lösung ein anderes Ergebnis bringen könnte, weil AND meistens stärker bindet, und somit die implizite Klammerung "WHERE (ARTIKEL.ARTNR = PROD_GRUPPE.ARTNR AND GRUPPENNR = 93) OR GRUPPENNR = 97" wäre. Von daher ist die "IN"-Abfrage in der Musterlösung etwas besser, weil man dann nicht so stark auf die Auswertungsreihenfolge der Ausdrücke achten muss. Ansonsten dürften der JOIN- und Subselect-Ansatz eigentlich die selben Ergebnisse ausgeben. Ganz spontan hätte ich auch eher die abgefragte Spaltennamen angegeben, anstatt einfach "*" zu benutzen.
 
Oben