Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Max-Abfrage Feld nicht gefunden (https://www.delphipraxis.net/110715-sql-max-abfrage-feld-nicht-gefunden.html)

oldie 23. Mär 2008 08:30

Datenbank: Paradox • Zugriff über: BDE

SQL Max-Abfrage Feld nicht gefunden
 
Hallo,

wie komme ich nach dieser Abfrage

Delphi-Quellcode:
select TrZeitPerIndex, max(TrZeitTime) from TableName where TrZeitAufIndex>0 group by TrZeitPerIndex
an die TrZeitTime ? Es kommt der Fehler Feld TrZeitTime nicht gefunden. Wenn ich TrZeitTime zusätzlich hinzufüge werden natürlich alle Personen mehrfach angezeigt.

Gruß
Oldie

Bernhard Geyer 23. Mär 2008 08:35

Re: SQL Max-Abfrage Feld nicht gefunden
 
Probiers mal so:
SQL-Code:
select TrZeitPerIndex, max(TrZeitTime) from TableName group by TrZeitPerIndex having TrZeitAufIndex>0

marabu 23. Mär 2008 09:01

Re: SQL Max-Abfrage Feld nicht gefunden
 
Moin,

durch die Aggregatfunktion erhält das Feld einen internen Namen. Du kannst es über seinen Feldindex ansprechen oder einen Aliasnamen vergeben:

SQL-Code:
SELECT TrZeitPerIndex, MAX(TrZeitTime) AS TrZeitTime
FROM TableName
WHEREe TrZeitAufIndex > 0 
GROUP BY TrZeitPerIndex
Frohe Ostern

oldie 23. Mär 2008 09:05

Re: SQL Max-Abfrage Feld nicht gefunden
 
@Bernhard Geyer
hat leider einen Fehler zur Folge. "Capability not supported"

@marabu
genau so gehts

Danke Euch

oldie 23. Mär 2008 09:42

Re: SQL Max-Abfrage Feld nicht gefunden
 
jetzt habe ich noch eine zuätzliche Frage

wie füge ich den Ergebnisdatensätzen weiter Felder hinzu ohne das Ergebis zu verändern?

Weitere Felder im Select-Bereich erweitern die Ergebnisliste .

mkinzler 23. Mär 2008 09:45

Re: SQL Max-Abfrage Feld nicht gefunden
 
Zitat:

wie füge ich den Ergebnisdatensätzen weiter Felder hinzu ohne das Ergebis zu verändern?

Weitere Felder im Select-Bereich erweitern die Ergebnisliste .
Hä? Du willst das Ergebnis erweitern ohne sie zu erweitern

oldie 23. Mär 2008 09:55

Re: SQL Max-Abfrage Feld nicht gefunden
 
Ok etwas genauer
Delphi-Quellcode:
SELECT TrZeitPerIndex, MAX(TrZeitTime) AS TrZeitTime
FROM TableName
WHEREe TrZeitAufIndex > 0
GROUP BY TrZeitPerIndex
findet pro Person den Datensatz mit der größten Zeit. Das ist OK.
In diesem Datensatz befinden sich noch weitere Felder. Auf diese möchte ich auch zugreifen.

Delphi-Quellcode:
SELECT TrZeitPerIndex, MAX(TrZeitTime) AS TrZeitTime, Feld1, Feld2,
FROM TableName
WHEREe TrZeitAufIndex > 0
GROUP BY TrZeitPerIndex
dies hat zur Folge, dass Personen doppelt angezeigt werden.

mkinzler 23. Mär 2008 10:02

Re: SQL Max-Abfrage Feld nicht gefunden
 
Jetzt verstehe ich deine Frage.
Welches Feld1, Feld2 willst du? (von welchem der zusammengefassten Datensätze?)
SQL-Code:
SELECT
    TrZeitPerIndex, MAX(TrZeitTime) AS TrZeitTime, MIN( Feld1), MIN(( Feld2)
FROM
    TableName
WHERE
     TrZeitAufIndex > 0
GROUP BY
    TrZeitPerIndex;

oldie 23. Mär 2008 10:14

Re: SQL Max-Abfrage Feld nicht gefunden
 
von ursprünglichen Abfrage
Delphi-Quellcode:
SELECT
    TrZeitPerIndex, MAX(TrZeitTime) AS TrZeitTime
FROM
    TableName
WHERE
     TrZeitAufIndex > 0
GROUP BY
    TrZeitPerIndex;
Delphi-Quellcode:
SELECT
    TrZeitPerIndex, MAX(TrZeitTime) AS TrZeitTime, MIN( Feld1) AS Feld1, MIN( Feld2) AS Feld2
FROM
    TableName
WHERE
     TrZeitAufIndex > 0
GROUP BY
    TrZeitPerIndex;
verändert die Anzahl der gefundenen Datensätze

mkinzler 23. Mär 2008 10:16

Re: SQL Max-Abfrage Feld nicht gefunden
 
Das dürfte eigentlich nicht die Anzahl der Datensätze verändern, da ja alle mit identischen TrZeitPerIndex zu einem Datensatz verschmolzen wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:38 Uhr.
Seite 1 von 2  1 2      

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