AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Abfrage nach dem größten Wert
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Abfrage nach dem größten Wert

Ein Thema von Hansi · begonnen am 4. Dez 2005 · letzter Beitrag vom 5. Dez 2005
Antwort Antwort
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#1

SQL Abfrage nach dem größten Wert

  Alt 4. Dez 2005, 14:40
Datenbank: MySQL • Version: 4.1 • Zugriff über: ZEOS
Hey,

Ich möchte gerne aus der Tabelle Artikel die höchste und somit die letzte Artikelnummer abfragen (Was ich nicht bevorzuge ist eine Schleife um jede einzelne Artikelnummer abzufragen). Die Schwierigkeit dabei ist:

Artikelnummer-Feld ist VarChar(15), kann also so heissen: GRA-001, 001-001, 001001
im SELECT muss dann wahrscheinlich folgendes Vorkommen: WHERE ARTNR LIKE "'+Variable+'-'+'%"; Die Variable sind die Zeichen(Zahlen und Buchstaben) vor dem Bindestrich.

Mit "SELECT MAX(ARTNR) FROM ARTIKEL" bekomme ich den höchsten Wert von Integer Zahlen, nur wie mache ich das in meinem Bsp?

Könnt Ihr helfen?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: SQL Abfrage nach dem größten Wert

  Alt 4. Dez 2005, 15:00
Hallo Hansi,

du hast also deine ArtikelNummer aus ArtikelGruppe, einem Minus als Trennzeichen und einer fortlaufenden Nummer zusammengesetzt und suchst die höchste Nummer für eine bestimmte Artikelgruppe?

SQL-Code:
SELECT MAX(CAST(SUBSTRING_INDEX(ArtikelNummer, '-', -1) AS UNSIGNED)) AS MaxNummer
FROM Artikel
WHERE ArtikelNummer LIKE 'GRA-%'
Wenn wir Glück haben funktioniert das.

Vorweihnachtliche Grüße vom marabu
  Mit Zitat antworten Zitat
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#3

Re: SQL Abfrage nach dem größten Wert

  Alt 4. Dez 2005, 15:34
Hallo marabu,

Leider funktioniert es noch nicht ganz.

Hier mein Code:
Delphi-Quellcode:
ZQ_Art_Suche.SQL.Clear;
ZQ_Art_Suche.SQL.Add('SELECT MAX(CAST(SUBSTRING_INDEX(ARTNR, '-', -1) AS UNSIGNED)) AS MaxNummer FROM ARTIKEL WHERE ARTNR LIKE "'+kre_art_pf+'-'+'%"');
ZQ_Art_Suche.Open;
kre_art_pf entspricht der Stringvariablen "001"

Fehler lautet bei hinteren LIKE Operatot ist auf diesen Operatortyp nicht anwendbar!

Weisst Du Rat?

Edit:

Also diese Abfrage funktioniert:
Delphi-Quellcode:
ZQ_Art_Suche.SQL.Clear;
ZQ_Art_Suche.SQL.Add('SELECT ARTNR FROM ARTIKEL WHERE ARTNR LIKE "'+kre_art_pf+'-'+'%"');
ZQ_Art_Suche.Open;
ShowMessage('Anzahl der gefundenen Artikel:'+IntToStr(ZQ_Art_Suche.RecordCount));
Bringt das mir/Dir was?
  Mit Zitat antworten Zitat
DelphiDeveloper

Registriert seit: 9. Apr 2003
Ort: Köln
256 Beiträge
 
Delphi XE2 Enterprise
 
#4

Re: SQL Abfrage nach dem größten Wert

  Alt 4. Dez 2005, 16:22
Zitat:
ZQ_Art_Suche.SQL.Clear;
ZQ_Art_Suche.SQL.Add('SELECT ARTNR FROM ARTIKEL WHERE ARTNR LIKE "'+kre_art_pf+'-'+'%"');
ZQ_Art_Suche.Open;
ShowMessage('Anzahl der gefundenen Artikel:'+IntToStr(ZQ_Art_Suche.RecordCount));
ich würde es mal so versuchen

Zitat:
ZQ_Art_Suche.SQL.Clear;
ZQ_Art_Suche.SQL.Add('SELECT ARTNR FROM ARTIKEL WHERE ARTNR LIKE ' + QuotedStr(kre_art_pf+'-%') ') ;
ZQ_Art_Suche.Open;
ShowMessage('Anzahl der gefundenen Artikel:'+IntToStr(ZQ_Art_Suche.RecordCount));
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: SQL Abfrage nach dem größten Wert

  Alt 4. Dez 2005, 17:15
Hansi, was soll ich sagen - bei mir läufts so wie gepostet, wenn ich es im MySQL-Browser direkt verwende. Sollte es an den ZEOS Komponenten liegen?

marabu
  Mit Zitat antworten Zitat
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#6

Re: SQL Abfrage nach dem größten Wert

  Alt 5. Dez 2005, 18:59
Halllo marabu,

Du hast Recht in meinem SQL Manager tut Dein SQL-Befehl auch. Muss mal schaun wo bei mir der Fehler liegt!

Vielen Dank!
  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 09:57 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