mySQL-Datensätze eingrenzen

Pascal

Benutzer
Beiträge
12
Hallo liebe Community,

ich hoffe ihr könnt mir bei meinem Problem weiter helfen.

Die SQL-Abfrage liefert mir z.B. folgendes Ergebnis:

Artikelnummer (Tabelle A) Lagernummer (Tabelle B) Kundennummer (Tabelle C)
1 0001 10000
1 0002 10000

Ein Artikel kann sich auf n Lägern befinden.


wie kann ich die erste Lagernummer selektieren?

Vielen Dank für Eure Hilfe.
 
Werbung:
Mit rein numerischen Werten ist das kein Problem mit GROUP BY.
SELECT a.Artikelnummer,max(b.Lagernummer) AS Lagernummer,c.Kundennummer FROM ... GROUP BY a.Artikelnummer,c.Kundennummer
Sollen mehrere Werte in ein Feld kombiniert werden oder eine bestimmte Reihenfolge für Werte festgelegt werden wird es etwas komplizierter.
 
wie kann ich die erste Lagernummer selektieren?
"Erste" bedeutet in SQL, Du müsstest definieren, nach welcher Sortierung es die erste Zeile sein soll.
Das erfolgt mit "ORDER BY <meinSortierkriterium>".
Dann ist dein mehrzeiliges Ergebnis nach deinen Wünschen sortiert und dann kannst Du die "erste" Zeile wählen.

Z.B. mit "LIMIT <rowcount>"
 
Jetzt wiedersprechen sich die Aussagen. Erst meinst du nur die "erste" Lagernummer pro Artikelnummer und Kundennummer. Das geht mit GROUP BY und max() oder min() auf Lagernummer.

Dann schreibst du "mehrere Werte kombinieren", damit meinte ich das alle Lagernummern verkettet werden und dann als ein Wert in der Zeile stehen. Das müsste mit GROUP BY und GROUP_CONCAT bei MySQL oder MariaDB gehen, da bin ich aber nicht so firm drin.

dabadepdu spielt jetzt noch auf eine weitere Methode an: Alle Werte in Lagernummer individuell sortieren und dann nach eigenen Kriterien eine auswählen, geht auch. Das funktioniert z.B. mit LIMIT, wenn man nur einen Datensatz aus der ganzen Tabelle braucht. Wenn du aber einen Datensatz pro Kundennummer willst musst du es definitiv anders machen.
 
das ist alles wirr, was Du da zeigst. Zeige, was Du für Tabellen hast, was für Daten, was für eine Abfrage, was Du haben willst.
Zeige KEINE Bilder, zeige CREATE TABLE, INSERT.
 
Die SQL-Abfrage liefert mir z.B. folgendes Ergebnis:

Artikelnummer (Tabelle A) Lagernummer (Tabelle B) Kundennummer (Tabelle C)
1 0001 10000
1 0002 10000

Ein Artikel kann sich auf n Lägern befinden.


wie kann ich die erste Lagernummer selektieren?
select min(lagernummer) from your_table

viel mehr kann man dazu nicht sagen, wir kennen Deine Tabellen nicht (sind das 3 Tabellen? Ist das gezeigte Resultat das Ergebniss eines JOINS? Ist das Ergebniss sortiert? Welche Datentypen sind im Einsatz?

sorry, Reparatur der Glaskugel hat sich verzögert ...
 
Werbung:
Zurück
Oben