Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Distinct (https://www.delphipraxis.net/50144-distinct.html)

Schodn 21. Jul 2005 08:51

Datenbank: SQL • Zugriff über: ADO

Distinct
 
Ich möchte nur das feld haupt distinct setzen, aber mit dieser abfrage setzt er mir alle felder auf distinct

aqTmp.SQL.Add( 'SELECT DISTINCT(haupt), sub, fname_haupt, fname2_haupt, fname_sub, fname2_sub FROM Kundenrelation' );

shmia 21. Jul 2005 08:59

Re: Distinct
 
Zitat:

Zitat von Schodn
Ich möchte nur das feld haupt distinct setzen, aber mit dieser abfrage setzt er mir alle felder auf distinct

aqTmp.SQL.Add( 'SELECT DISTINCT(haupt), sub, fname_haupt, fname2_haupt, fname_sub, fname2_sub FROM Kundenrelation' );

Tja, das geht technisch nicht. DISTINCT wirkt auf alle Felder.
Es werden nur Duplikate ausgefiltert.

Du musst zurück an den Anfang und mit mit klaren Worten formulieren, was zu eigentlich erreichen möchtest und wie die Struktur der beteiligten Tabellen aussieht.

cell 21. Jul 2005 09:01

Re: Distinct
 
probiers mit 2 Abfragen ???

Schodn 21. Jul 2005 09:08

Re: Distinct
 
Ich wollte 2 abfragen vermeiden aber wenn distinct immer auf alle felder wirkt, was ich nicht wusste, muss ich es wohl so machen

danke für eure antworten

jensw_2000 21. Jul 2005 09:08

Re: Distinct
 
Eventuell ist auch GROUP BY das, was du suchst...

SQL-Code:
SELECT haupt, sub, fname_haupt, fname2_haupt, fname_sub, fname2_sub
FROM Kundenrelation
GROUP BY Haupt, ...

Zitat:

probiers mit 2 Abfragen ???
Das wird nur etwas nützen wenn du HAUPT mit WHERE einschränkst.
z.B.

SQL-Code:
SELECT haupt, sub, fname_haupt, fname2_haupt, fname_sub, fname2_sub
FROM Kundenrelation
WHERE HAUPT IN (SELECT HAUPT FROM Kundenrelation WHERE HAUPT > 1234)

cell 21. Jul 2005 09:17

Re: Distinct
 
Delphi-Quellcode:
aqtmp.SQL.Add(SELECT DISTINCT haupt FROM kundenrelation WHERE <Bedingung>)
...
...
aqtmp2.SQL.Add(SELECT sub, fname_haupt, fname2_haupt, fname_sub, fname2_sub FROM kundenrelation )
so ungefähr hätt i ma des gedacht ka obs geht müsste man ausprobieren =D

jensw_2000 21. Jul 2005 09:24

Re: Distinct
 
Dann musst du das nur anpassen

SQL-Code:
SELECT sub, fname_haupt, fname2_haupt, fname_sub, fname2_sub
FROM Kundenrelation
WHERE HAUPT IN (SELECT HAUPT FROM Kundenrelation WHERE Umsatz > 1000)
Distinct brauchst du in diesem Fall garnicht ...

Schodn 21. Jul 2005 09:45

Re: Distinct
 
da bei mir haupt ein nummer ist hab ich sie aufsteigend sortiert.

dannach hab ich eine if eingebaut

if haupt vom Letzten datensatz = wie haupt vom aktuellen datensatz dann gehe zum nächsten.

Das reicht für meine abfrage vollkommen aus

danke für eure antworten


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz