![]() |
Datenbank: MySQL • Version: 5 • Zugriff über: C-Api
MySQL Ergebnisse nach niedrigstem Werten selektieren
Hallo Zusammen,
ich habe ein Frage, die ich als nicht wirklich SQL-Sicherer User nicht alleine gelöst bekomme und die zu spezeille ist, als dass ich etwas gefunden hätte. Wäre froh, wenn mir hier jemand weiterhelfen würde!!! :hi: Ich habe eine MySQL Tabelle, in der stehen Auftragsnummern (FANR), Artikelnummern (ArtikelNr), Arbeitsgangnummern (AGNR), Status (Stat). Zu einer Artikelnummer kann es mehrere Aufträge (und damit mehrer Auftagsnummern) geben. Zu jedem Auftrag gibt es mehrere Arbeitsgänge (und damit mehrere Arbeitsgangnummern (10,20,30,40...). Es gibt den 0 (nicht gestartet),1 (gestartet) und 9 (abgeschlossen). Ich möchte, dass wenn in einem Editfeld eine Artikelnummer eingegeben wird, dass in einem StringGrid eine Tabelle erscheint, welche die Artikelnummer, Auftragsnummer und den ersten Arbeitsgang, der nicht den Status 9 (der also nicht gestartet oder gestartet aber noch nicht abgeschlossen wurde) aufweist. Die Arbeitsgänge werden immer der Reihenfolge nach abgearbeitet. Könnt Ihr mir helfen, wie meine Select-Anweisung aussehen soll? :o Vielen Dank im Voraus Ykcim |
Re: MySQL Ergebnisse nach niedrigstem Werten selektieren
Hallo,
meinst Du sowas?
SQL-Code:
(Nur hingeschrieben, nicht getestet.)
select FANR, ArtikelNr, AGNR, Min(Stat) As Status from Tabelle
where stat <> 9 group by FANR, ArtikelNr, AGNR |
Re: MySQL Ergebnisse nach niedrigstem Werten selektieren
SQL-Code:
select * from <Tabelle> where Stat <> 9 and ArtikelNr = :nummer LIMIT 1
|
Re: MySQL Ergebnisse nach niedrigstem Werten selektieren
Hallo!
Vielen Dank für die Antwort. Leider bin ich mit beiden nicht weitergekommen... @naphets: Bei Deiner Lösung ist nicht berücksichtig, dass der User nach Artikelnummer selektieren kann. Ich habe beide Lösungen für meinen Fall umgeschrieben - erfolglos! Das ist ein Auszug aus der Tabelle: ArtikelNr.....FANr....AGNr.......Stat 1000..........900......10..........9 1000..........900......20..........9 1000..........900......30 1000..........900......40 1000..........950......10..........9 1000..........950......20 1000..........950......30 1000..........950......40 1555..........980......10..........9 1555..........980......20..........9 1555..........980......30 1555..........980......40 1555..........980......50 1555..........985......10..........9 1555..........985......20..........9 1555..........985......30..........9 1555 985 40 9 1555 985 50 Wenn ich jetzt nach Artikel 1000 selektiere, soll mein Ergebnis wie folgt aussehen ArtikelNr.....FANr AGNr......Stat 1000..........900......30 1000..........950......20 Wenn ich jetzt nach Artikel 1555 selektiere, soll mein Ergebnis wie folgt aussehen ArtikelNr.....FANr....AGNr.......Stat 1555..........980......30 1555..........985......50 Ich hoffe, jetzt ist es verständlicher dargestellt. Ich tue mich mit diesem Problem wirklich etwas schwer und bin froh um jede Hilfe! Vielen Dank im Voraus Ykcim |
Re: MySQL Ergebnisse nach niedrigstem Werten selektieren
SQL-Code:
SELECT
ArtikelNr, FANr, MIN(AGNr) FROM Tabelle WHERE Stat <> 9 AND ArtikelNr = :ArtNr GROUP BY ArtikelNr, FANr ORDER BY ArtikelNr, FANr |
Re: MySQL Ergebnisse nach niedrigstem Werten selektieren
:-D Prima, dass ist spitze!!!
Vielen Dank Ich habe es noch nach AG Nr sortiert, damit ich immer den weitesten Auftrag obenstehen habe: Bezeichnungen sind anders: ArtiklNr= WATENR FANr=WAAUNR AGNR=OAAGNR Stat= OATLKZ
SQL-Code:
Vielen Dank an alle für die tolle und schnelle Hilfe!
SELECT
WATENR, WAAUNR, MIN(OAAGNR) FROM as400 WHERE OATLKZ <> 9 AND WATENR = 10012425 GROUP BY WATENR, WAAUNR ORDER BY WATENR, OAAGNR DESC LG Ykcim |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz