AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MySQL Ergebnisse nach niedrigstem Werten selektieren
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL Ergebnisse nach niedrigstem Werten selektieren

Ein Thema von Ykcim · begonnen am 29. Jan 2009 · letzter Beitrag vom 29. Jan 2009
Antwort Antwort
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
824 Beiträge
 
Delphi 10.4 Sydney
 
#1

MySQL Ergebnisse nach niedrigstem Werten selektieren

  Alt 29. Jan 2009, 15:11
Datenbank: MySQL • Version: 5 • Zugriff über: C-Api
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!!!

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?

Vielen Dank im Voraus

Ykcim
Patrick
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: MySQL Ergebnisse nach niedrigstem Werten selektieren

  Alt 29. Jan 2009, 15:23
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.)
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: MySQL Ergebnisse nach niedrigstem Werten selektieren

  Alt 29. Jan 2009, 15:28
select * from <Tabelle> where Stat <> 9 and ArtikelNr = :nummer LIMIT 1
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
824 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: MySQL Ergebnisse nach niedrigstem Werten selektieren

  Alt 29. Jan 2009, 16:01
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
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#5

Re: MySQL Ergebnisse nach niedrigstem Werten selektieren

  Alt 29. Jan 2009, 16:06
SQL-Code:
SELECT
  ArtikelNr, FANr, MIN(AGNr)
FROM
  Tabelle
WHERE
  Stat <> 9
  AND ArtikelNr = :ArtNr
GROUP BY
  ArtikelNr, FANr
ORDER BY
  ArtikelNr, FANr
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
824 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: MySQL Ergebnisse nach niedrigstem Werten selektieren

  Alt 29. Jan 2009, 16:19
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
Patrick
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz