SQL-String select distinkt

Hallo,

VB6-Projekt!
Benütze VB6, ACCESS2000 Datenbank, Data1, DBList
Möchte in DBList nur unterschiedliche Einträge anzeigen, diese jedoch
nach dem Datum sortiert.

SQL_String für Data1.recordSource

funktioniert, fehlt aber noch die Sortierung nach der Spalte Montag_Datum.
SQL_String = "select distinct Name_Tonanlage from einsätze "

funktioniert nicht - Konflikt mit distinct
SQL_String = „select distinct Name_Tonanlage from einsätze order by montag_datum“

Wie soll dieser SQL_String sein?

Danke für Eure Hilfe im Voraus

Othmar

Hallo,

funktioniert nicht - Konflikt mit distinct
SQL_String = „select distinct Name_Tonanlage from einsätze
order by montag_datum“

das funktioniert nur, wenn das Feld, nach dem sortiert werden soll auch Bestandteil des Datensatzes ist.

SQL\_String = "SELECT DISTINCT Name\_Tonanlage, montag\_datum FROM \_ 
einsätze OEDER BY montag\_datum ;"

Das funktioniert.

Gruß Rainer

Hallo Rainer,

danke für Deine rasche Hilfe.

Es funktioniert leider nicht so, wie ich es möchte.

Folgendes habe ich probiert.

SQL_String=„select name_tonanlage,montag_datum from einsätze order by_ montag_datum;“
Ergebnis: es sind alle nach dem montag_datum sortiert auch Duplikate

SQL_String=„select * from einsätze order by_ montag_datum;“
Ergebnis wie oben

SQL_String=„select distinct name_tonanlage,montag_datum from einsätze;“
Ergebnis: es sind alle alphabetisch sortiert auch Duplikate

SQL_String=„select distinct name_tonanlage,montag_datum from einsätze_ order by montag_datum;“
Ergebnis: es sind alle nach dem montag_datum sortiert auch Duplikate

Es sollten aus Spalte name_tonanlage alle nach Spalte montag_datum sortiert werden doch ohne Duplikate.

Vielleicht muss ich die Eigenschaften im DBList anders setzen?
BoundColumn = name_tonanlage
DataSource = tonanlage_dat
ListFild = name_tonanlage
RowSource = tonanlage_dat

Tonanlage_dat.RecordSource = SQL_String

Wo liegt mein Problem???

liebe Grüße
Othmar

Guten Tag,
Mein Problem mit distinct in Verbindung mit order by besteht noch immer und ich finde keine passende Lösung.
Ich währe für eine Hile sehr dankbar!!!

mit freundlichen Grüßen
Othmar

Hallo Othmar,

Mein Problem mit distinct in Verbindung mit order by besteht
noch immer und ich finde keine passende Lösung.

ja, das war mir schon klar, aber ich hatte noch keine Zeit, mich intensiv genug damit zu beschäftigen. Vergessen habe ich es nicht. :smile:

Gruß Rainer

Hallo Rainer Fischer,

ich wollte nicht drängen aber auch nicht untergehen!!

Habe selber in einigen Foren herumgesucht und auch einige Möglichkeiten selber erfolglos
ausprobiert.

Es eilt nicht. Momentan arbeite ich mit denn Mehrfacheinträgen.
Es ist nur ein Schönheitsfehler.

Danke für Deine Hilfe

Geuß Othmar

Hallo Othmar,

nachdem ich mir fast die Arme dabei gebrochen habe, habe ich mit Google etwas gefunden, das ich für die Erklärung halte:

Der DISTINCT -Operator sortiert die Ausgabe aufsteigend.

Distinct löscht die doppelten Zeilen und sortiert die Ausgabe.

Ein ‚ORDER BY …‘ steht dann dazu im Widerspruch, weil DISTINCT bereits ein anderes ORDER BY beinhaltet, das nicht zu beeinflussen ist.

Mit SQL scheint Dein Problem nicht lösbar zu sein. :frowning:
Ich würde dann also auf das Distinct im SQL-String verzichten und die doppelten Einträge per Code löschen, weil Distinct die Sortierung in jedem Fall durcheinander bgringt.

Gruß Rainer

Hallo Rainer!

Danke für Deine mühevolle Arbeit.

Doppelt sind nur die Namen und nicht die Einträge in den weiteren Feldern, daher kann ich sie nicht löschen.

Werde einen anderen Weg versuchen.
Löschen kann ich die Datensätze nicht.
Werde eine zusätzliche Spalte einbauen in welche ich dann die „Doppelten“ markiere und so kann ich diese dann ausfiltern.

Nochmals DANKE

Gruß Othmar

Hallo Othmar,

Doppelt sind nur die Namen und nicht die Einträge in den
weiteren Feldern, daher kann ich sie nicht löschen.

Werde einen anderen Weg versuchen.
Löschen kann ich die Datensätze nicht.

Die Datensätze kannst Du natürlich nicht löschen.

Ich weiß nicht, was mit dem Ergebnis passieren soll, wie viele Datensätze das Ergebnis enthält.

Ich würde das Ergebnis in jedem Fall entweder in eine tabellarische Ansicht (Flexgrid?) oder ein Array übertragen und dort die doppelten entfernen.

Das Flexgrid würde sich anbieten, wenn das Ergebnis als Liste angezeigt werden soll und weniger als 32000 Datensätze enthält.

Gruß Rainer