Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Dublikate ausblenden (https://www.delphipraxis.net/108267-dublikate-ausblenden.html)

DeddyH 10. Feb 2008 15:30

Re: Dublikate ausblenden
 
Und alle Nicht-Aggregat-Felder müssen in der group by-Klausel auftauchen.

MCOP2001DE 10. Feb 2008 15:31

Re: Dublikate ausblenden
 
Ich brauche nur das Feld Atyp aus der Tabelle Anlagentyp.
aber zum sortieren brauche ich auch die Kunden_ID aus der Tabelle Kunden und aus der Tabelle Anlagen die Felder AnlagenTyp_ID und Kunden_ID.

Pfoto 10. Feb 2008 16:36

Re: Dublikate ausblenden
 
Könntest du nicht einfach DISTINCT verwenden,
um die doppelten Einträge herauszufiltern?

Gruß
Pfoto

DeddyH 10. Feb 2008 16:42

Re: Dublikate ausblenden
 
AFAIK ist DISTINCT unperformanter als eine Gruppierung, ich kann mich aber auch irren.

mkinzler 10. Feb 2008 16:49

Re: Dublikate ausblenden
 
es funktioniert zudem nur wenn die Datensätze komplett übereinstimmen.

MCOP2001DE 10. Feb 2008 17:05

Re: Dublikate ausblenden
 
nein leider nicht ich bekomme die Fehlermeldung Syntaxfehler(fehlender Operator)

Code:
Delphi-Quellcode:
with Anlagensuche.Anlagentyp do
    begin
      close;
      SQL.Clear;
      SQL.Text := 'select * from Anlagen where Anlagen.Kunden_ID=:Kunden_ID where EXISTS (select DISTINCT MaTyp, Typ_ID from Anlagentyp where Anlagen.Typ_ID = Anlagentyp.Typ_ID)';
      Parameters.ParamByName('Kunden_ID').Value := DBT_Kunden_ID.Caption;
      open;
    end;
ich muss ja erst die Tabelle Anlagen nach der Kunden_ID durchsuchen und dann aus dem Ergebnis in der Tabelle Anlagentypen die MaTyp(Bezeichnung) suchen lassen und das Ergebnis soll dann Angezeigt werden aber halt nur einmal in der Combobox

DeddyH 10. Feb 2008 17:17

Re: Dublikate ausblenden
 
Du hast 2 mal "where" in der Hauptquery. Außerdem sieht das etwas umständlich aus. Was soll denn nun angezeigt werden? MaTyp?

MCOP2001DE 10. Feb 2008 17:42

Re: Dublikate ausblenden
 
zum besseren verstehen

ich habe folgende Tabellen
Anlagen
Anlagen_ID
Kunden_ID
Typ_ID

Anlagentyp
Typ_ID
MaTyp (Bezeichnung)

Der Kunde wird mit der Combobox Kunden ausgewählt.
nun soll anhand der kunden_ID die Anlagen des Kunden herausgefiltert werden.
mit diesem Ergebnis soll nun aus der Tabelle Anlagentyp nur die MaTypen in der Combobox Anlagentyp angezeigt werden.
Das klappt auch aber wie schon gesagt es werden mir z.B. 10x Trockner angezeigt. Ich möchte aber nur 1x Trockner in der Combobox
stehen haben den das Ergebnis wird dann zum Sortieren den Anlagen weiter genutzt.

DeddyH 10. Feb 2008 17:48

Re: Dublikate ausblenden
 
Wäre da nicht eine DBLookupComboBox der einfachere Weg? Naja, egal, versuch es mal so (nun doch versuchsweise mit distinct):
SQL-Code:
SELECT DISTINCT(T.MaTyp) FROM Anlagentyp T
JOIN Anlagen A ON A.Typ_ID = T.Typ_ID
WHERE A.Kunden_ID = :Kunden_ID

MCOP2001DE 10. Feb 2008 17:53

Re: Dublikate ausblenden
 
Da bekomme ich nur die Fehlermeldung Syntaxfehler in der FROM-Klausel


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:12 Uhr.
Seite 2 von 4     12 34      

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 by Thomas Breitkreuz