Ausgabe der höchsten Stücklistenversion
Ausgabe der höchsten Stücklistenversion
am 26.02.2007 07:15:51 von Hans Lechner
Hallo NG,
ich habe folgende Beispiel-table für meine Frage:
Tabelle1
nr bezeichnung status version
1690123 Original F 1
1690124 Original F 1
1690124 Original F 2
1690124 Modif1 I 3
1690125 Original F 1
1690125 Modif1 I 2
1690126 Original I 1
1690127 Original F 1
1690127 Modif1 F 2
1690127 Modif2 F 3
1690127 Modif2 I 4
Nun möchte ich aus dieser Tabelle die kompletten Datensätze (nr,
bezeichnung, status, version) ausgeben, welche die höchste 'version'
haben.
Die Abfrage:
SELECT Tabelle1.nr, Max(Tabelle1.version) AS 'Max von version'
FROM Tabelle1
GROUP BY Tabelle1.nr
liefert mir das korrekte Ergebnis, aber nätürlich ohne die Werte für
'status' und 'bezeichnung'.
Da diese beiden Werte je 169er-Nummer immer unterschiedlich sein
können, lässt sich die 'SELECT'-Anweisung nicht einfach damit
erweitern.
Nun meine Frage:
Wie muss die Abfrage ergänzt werden, damit als Ergebnis nur die
höchsten Versionen inkl. aller Spalten ausgegeben werden?
Benötigt man dazu einen Subselect in einer 'WHERE'-Bedingung oder läßt
sich die Abfrage mit 'HAVING' entsprechend erweitern, oder ...?
Ziel:
nr bezeichnung status version
1690123 Original F 1
1690124 Modif1 I 3
1690125 Modif1 I 2
1690126 Original I 1
1690127 Modif2 I 4
Gruß
Hans
Re: Ausgabe der höchsten Stücklistenversion
am 26.02.2007 07:45:10 von Andreas Kretschmer
Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Re: Ausgabe der höchsten Stücklistenversion
am 26.02.2007 16:06:05 von Weinzierl Stefan
Hans Lechner wrote:
> Hallo NG,
>
> ich habe folgende Beispiel-table für meine Frage:
>
> Tabelle1
>
> nr bezeichnung status version
> 1690123 Original F 1
> 1690124 Original F 1
> 1690124 Original F 2
> 1690124 Modif1 I 3
> 1690125 Original F 1
> 1690125 Modif1 I 2
> 1690126 Original I 1
> 1690127 Original F 1
> 1690127 Modif1 F 2
> 1690127 Modif2 F 3
> 1690127 Modif2 I 4
>
>
> Nun möchte ich aus dieser Tabelle die kompletten Datensätze (nr,
> bezeichnung, status, version) ausgeben, welche die höchste 'version'
> haben.
[...]
SELECT nr, bezeichnung, status, version FROM tabelle1 AS a WHERE
version=(SELECT MAX(version) FROM tabelle1 AS b WHERE a.nr=b.nr)
Stefan
Re: Ausgabe der höchsten Stücklistenversion
am 27.02.2007 09:59:22 von Hans Lechner
On 26 Feb., 17:06, Weinzierl Stefan
wrote:
> Hans Lechner wrote:
> > Hallo NG,
>
> > ich habe folgende Beispiel-table für meine Frage:
>
> > Tabelle1
>
> > nr bezeichnung status version
> > 1690123 Original F 1
> > 1690124 Original F 1
> > 1690124 Original F 2
> > 1690124 Modif1 I 3
> > 1690125 Original F 1
> > 1690125 Modif1 I 2
> > 1690126 Original I 1
> > 1690127 Original F 1
> > 1690127 Modif1 F 2
> > 1690127 Modif2 F 3
> > 1690127 Modif2 I 4
>
> > Nun möchte ich aus dieser Tabelle die kompletten Datensätze (nr,
> > bezeichnung, status, version) ausgeben, welche die höchste 'version'
> > haben.
>
> [...]
>
> SELECT nr, bezeichnung, status, version FROM tabelle1 AS a WHERE
> version=3D(SELECT MAX(version) FROM tabelle1 AS b WHERE a.nr=3Db.nr)
>
> Stefan
Einfach und perfekt!
Vielen Dank für die Hilfe.
Gruß
Hans