cement
Goto Top

Problem bei SQL-Abfrage

Moin Leute,

ich habe im Access eine Tabelle, mit einer Spalte "Auftragsnummer" und einer Spalte "Auftragsname" (sowie viele weitere Spalten).

Wie muß wohl die Syntax für eine SQL-Abfrage lauten, damit jede Auftragsnummer nur einmal in der Liste auftaucht?

Daneben soll dann natürlich der Auftragsname auftauchen.

Eine Kleinigkeit noch mehr:
Die Tabelle wurde "per Hand" erstellt. Somit kann es sein, dass im Auftragsnamen z.B. mal "Hauptstraße 1" oder "Hauptstr. 1" steht.

Trotzdem soll die "Auftragsnummer" nur einmal aufgelistet werden.
Daneben könnte dann z.B. der Auftragsname stehen, der als erstes gefunden wurde.

Das ist doch für einen SQL-Spezi bestimmt kein Problem, oder?
Leider versagen hier meine (äußerst bescheidenen) SQL-Syntax-Kenntnisse.

Würde mich freuen, wenn mir jemand dabei helfen könnte.

Danke schon mal, Gruß

CeMeNt

Content-ID: 125949

Url: https://administrator.de/contentid/125949

Ausgedruckt am: 16.12.2024 um 19:12 Uhr

SlainteMhath
SlainteMhath 28.09.2009 um 14:07:19 Uhr
Goto Top
Moin,

SELECT Auftragsnummer, MAX(Auftragsname) 
FROM Auftraege 
GROUP BY Auftragsnummer

lg face-smile
Slainte
76109
76109 28.09.2009 um 14:16:53 Uhr
Goto Top
Hallo zusammen!

Sollte mit Distinct (keine Duplikate) gehen:
Select Distinct Auftragsnummer, Autragsname From

Gruß Dieter
Arano
Arano 28.09.2009 um 14:49:38 Uhr
Goto Top
Tag

würde ein
Select Distinct Auftragsnummer, Autragsname From 
nicht aber auch
Nummer Name
1235 Hauptstraße
1235 Hauptstr.
zurückgeben ?
Die Nummern sind zwar gleich, aber beim Namen besteht ein Unterschied.
Er wollte die Nummer ja auch nur einmal in der Ergebnistabelle haben.


~Arano
CeMeNt
CeMeNt 28.09.2009 um 14:53:12 Uhr
Goto Top
Moin Leute,

vielen Dank!

Hatte SlainteMhaths Vorschlag sofort getestet und gesehen, dass das genau die Lösung war, die ich gesucht hatte.

@Dieter:
Danke, Deine Lösung funktioniert sicherlich auch bestens.
Vielleicht teste ich das später noch einmal.

Außerdem habe ich gerade festgestellt, dass ich dafür ja gar keine SQL-Abfrage brauche:

- Zwei Felder auswählen
- "Funktionen" aktivieren
- Auftragsnummer = Gruppieren
- Auftragsname = MAX

ergibt so ziemlich den Code von Slainte:

SELECT Auftraege.[Auftrags-Nr], Max(Auftraege.Auftragsname) AS [Max von Auftragsname]
FROM Auftraege
GROUP BY Auftraege.[Auftrags-Nr];

Danke,
Gruß
CeMeNt
76109
76109 28.09.2009 um 14:56:47 Uhr
Goto Top
Hallo Arano!

Du hast Recht das funktioniert leider nichtface-smile

Gruß Dieter