SQL Abfrage: Gewisse Anzahl an Artikel ausgeben?
Hallo zusammen,
ich habe folgende Aufgabenstellung: Wie im Bild zu sehen, sollen die ersten 10 Artikel ausgegeben werden. Meines Erachtens stimmt der bereits bestehende Befehl, allerdings fehlt nur noch die Ausgabe der ersten 10 Artikel. Ich weiß, dass es den Befehl Limit gibt, dieser wird allerdings nicht als Lösung anerkannt, daher müssen die einfacheren und gängigen Befehle benutzt werden.
Hätte jemand eine gute Idee ?
Vielen Dank!
2 Antworten
Hey MSMicroFuchs ✌️,
Ich habe ein wenig recherchiert und hier ist der Code, den ich nach bestem Wissen und Gewissen an dich weitergeben kann:
Quellcode:
════════════════════════════════════════════════════
/*
Auswahl der ersten 10 Artikel, die bestimmte Bedingungen
erfüllen.
*/
SELECT TOP 10
Name AS Name, -- Wählt die Spalte "Name" aus
Weight AS Weight, -- Wählt die Spalte "Weight" aus
Price AS Price -- Wählt die Spalte "Price" aus
FROM Article -- Gibt die Tabelle "Article" als Datenquelle an
/*
Filtert die Zeilen, sodass nur Artikel mit einem Gewicht
kleiner als 100 angezeigt werden
*/
WHERE Weight < 100
/*
Sortiert die Ergebnisse in absteigender Reihenfolge nach
dem"Price"
*/
ORDER BY Price DESC
════════════════════════════════════════════════════
Ich glaube, dass man in der SELECT-Zeile in diesem Fall das `AS` weglassen kann, weil die Spalten sowieso den Namen besitzen und in der Ausgabe dieser Name auch auch ausgegeben wird. Es stört aber nicht, es einfach hin zu schreiben ✌️
Die Entwicklung ist bisher nur ein Hobby von mir, meine Antworten beruhen auf Recherche und Erfahrung, weshalb es vorkommen kann, dass sich Fehler einschleichen.
Ich hoffe, dass dir mit meiner Antwort helfen konnte!
Mit freundlichen Grüßen
o0ojoshua
Du erstellst ein Feld für die Sortierung und nimmst da nur die, die einen index bis 10 haben.
Das Feld kannst du beispielsweise zählst, wie viele andere Zeilen der Tabelle einen kleineren Sortierwert als die aktuelle Zeile haben.
Pass auf, wenn du Felder mit demselben Sortierwert hast, dass die nicht denselben Index erhalten.