Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL Ergebnisse nach niedrigstem Werten selektieren (https://www.delphipraxis.net/128420-mysql-ergebnisse-nach-niedrigstem-werten-selektieren.html)

Ykcim 29. Jan 2009 15:11

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

nahpets 29. Jan 2009 15:23

Re: MySQL Ergebnisse nach niedrigstem Werten selektieren
 
Hallo,

meinst Du sowas?
SQL-Code:
select FANR, ArtikelNr, AGNR, Min(Stat) As Status from Tabelle
where stat <> 9
group by FANR, ArtikelNr, AGNR
(Nur hingeschrieben, nicht getestet.)

quendolineDD 29. Jan 2009 15:28

Re: MySQL Ergebnisse nach niedrigstem Werten selektieren
 
SQL-Code:
select * from <Tabelle> where Stat <> 9 and ArtikelNr = :nummer LIMIT 1

Ykcim 29. Jan 2009 16:01

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

DeddyH 29. Jan 2009 16:06

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

Ykcim 29. Jan 2009 16:19

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:
SELECT
  WATENR, WAAUNR, MIN(OAAGNR)
FROM
  as400
WHERE
  OATLKZ <> 9
  AND WATENR = 10012425
GROUP BY
  WATENR, WAAUNR
ORDER BY
  WATENR, OAAGNR DESC
Vielen Dank an alle für die tolle und schnelle Hilfe!

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