AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Firebird - SELECT mit MAX / MIN Abfrage der gefundenen IDs

Firebird - SELECT mit MAX / MIN Abfrage der gefundenen IDs

Ein Thema von Tempdir · begonnen am 25. Feb 2009 · letzter Beitrag vom 16. Mär 2009
Antwort Antwort
Seite 2 von 3     12 3   
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Firebird - SELECT mit MAX / MIN Abfrage der gefundenen I

  Alt 25. Feb 2009, 13:47
Ich würde dann aber einen SmallInt nehem und keine Char
Btw: Warum ein VarChar(1)?
Markus Kinzler
  Mit Zitat antworten Zitat
Tempdir

Registriert seit: 19. Feb 2009
Ort: Karlsruhe
84 Beiträge
 
RAD-Studio 2009 Pro
 
#12

Re: Firebird - SELECT mit MAX / MIN Abfrage der gefundenen I

  Alt 25. Feb 2009, 13:52
Ok, das war nur für Testzwecke. Danke für den Hinweis!
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#13

Re: Firebird - SELECT mit MAX / MIN Abfrage der gefundenen I

  Alt 25. Feb 2009, 13:57
Noch ein kleiner Vorteil bei der Verwendung von Integer: die können später auch prima als Fremdschlüssel benutzt werden. Und sie sind nicht Zeichensatzabhängig ... Ich empfinde das "Fehlen" von Boolschen Feldern nicht als Nachteil. Aber das ist natürlich nicht zuletzt Geschmackssache...
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
Tempdir

Registriert seit: 19. Feb 2009
Ort: Karlsruhe
84 Beiträge
 
RAD-Studio 2009 Pro
 
#14

Re: Firebird - SELECT mit MAX / MIN Abfrage der gefundenen I

  Alt 25. Feb 2009, 14:01
Danke!

Zum Thema "Boolean-Domäne": Bringt das Vorteile?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Firebird - SELECT mit MAX / MIN Abfrage der gefundenen I

  Alt 25. Feb 2009, 14:04
Natürlich. Du kannst z.B. Werte checken und hast DB-einheitlich dieselben Grundlagen. Sollten sich diese ändern, musst Du nur die Domäne anpassen.
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
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#16

Re: Firebird - SELECT mit MAX / MIN Abfrage der gefundenen I

  Alt 25. Feb 2009, 14:07
Grundsätzlich bringt das den Vorteil der leichteren Wart- und Lesbarkeit.
Einer Domäne kann man Bedingungen und Einschränkungen mitgeben.
Damit können schon beim Design falsche Feldinhalte vermieden werden.
Ausserdem kann man bei manchen System im Nachhinein den Datentyp einer
Domäne ändern. Also alle Felder auf einen Schlag!
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
Tempdir

Registriert seit: 19. Feb 2009
Ort: Karlsruhe
84 Beiträge
 
RAD-Studio 2009 Pro
 
#17

Re: Firebird - SELECT mit MAX / MIN Abfrage der gefundenen I

  Alt 16. Mär 2009, 09:56
Guten Morgen,

meine Frage betrifft das gleiche Problem wie hier diskutiert, allerdings diesmal für die Turbo-Datenbank (TurboDB).

Ich spreche meine Turbo-Datenbank mit den Delphi "TurboDB"-Komponenten an, unter anderem ein TDBQuery. Als SQL-Syntax gibt es anscheinend nur Local-SQL (wie auch immer die aussieht, finde leider keine Doku dazu).

Frage: Wie mache ich so eine Anfrage, damit sie auch mit der TDBQuery-Komponente und der TurboDB funktioniert:

SELECT first 1 * FROM tabelle WHERE field2 = 'TRUEorder by field1
Wäre für Tipps wie immer sehr dankbar!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Firebird - SELECT mit MAX / MIN Abfrage der gefundenen I

  Alt 16. Mär 2009, 10:02
Evtl. so?
SQL-Code:
SELECT * FROM tabelle
WHERE field1 =
   (SELECT MIN(field1)
    FROM Tabelle
    WHERE field2 = 'TRUE')
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
Tempdir

Registriert seit: 19. Feb 2009
Ort: Karlsruhe
84 Beiträge
 
RAD-Studio 2009 Pro
 
#19

Re: Firebird - SELECT mit MAX / MIN Abfrage der gefundenen I

  Alt 16. Mär 2009, 10:28
Danke! Hab ich leider nicht zum Laufen bringen können, aber hab mittlerweile eine andere Lösung:

SELECT MAX(field1) FROM tabelle WHERE field2='TRUE' Das doofe dabei, ich muss nochmal eine Anfrage starten um den Datensatz auszulesen. Kann man das auch in einem Zug machen wie in meinem vorherigen Beispiel oben? Es sollte halt am Ressourcenschonendsten sein.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: Firebird - SELECT mit MAX / MIN Abfrage der gefundenen I

  Alt 16. Mär 2009, 10:44
SQL-Code:
SELECT field1, <Feldliste>
FROM Tabelle
WHERE field2='TRUE'
GROUP BY field1, <Feldliste>
HAVING field1 = MAX(field1)
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
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:11 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