AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Doppelte Datensätze aus Select ausfiltern
Thema durchsuchen
Ansicht
Themen-Optionen

Doppelte Datensätze aus Select ausfiltern

Ein Thema von Salomon · begonnen am 20. Feb 2008 · letzter Beitrag vom 25. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#1

Doppelte Datensätze aus Select ausfiltern

  Alt 20. Feb 2008, 15:11
Datenbank: MS SQL • Zugriff über: ADO
Hallo,
ich baue mir über mehrere Tabellen ein Select zusammen. Dabei werden aber nur Daten aus der ersten Tabelle angezeigt. Allerdings sind einiges Datensätze in der Ergebnismenge doppelt vorhanden.

Mit einem einfachen Distinct geht es leider nicht, da in den Datnesätzen ein Feld vom Typ Text ist. Wie kann ich trotzdem doppelte aussortieren?

Gruß
Marcus
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Doppelte Datensätze aus Select ausfiltern

  Alt 20. Feb 2008, 15:13
Man könnte Gruppieren, aber um genaue Angaben machen müsste man die Tabellen und den join kennen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Doppelte Datensätze aus Select ausfiltern

  Alt 20. Feb 2008, 15:13
Und wenn Du das Textfeld bei der Abfrage auslässt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#4

Re: Doppelte Datensätze aus Select ausfiltern

  Alt 20. Feb 2008, 15:21
Den SQL kann ich leider nicht posten, da der String sehr dynamisch zusammengesetzt wird.

Das ganze sieht so aus (vereinfacht):

TB_Issues
=========
IssueID
TextFeld

TB_Comments
===========
CommentsID
FK_IssueID
CommentTyp

Ein Issue kann nun mehrere Comments haben. Suchen möchte ich z.B. Issues die Comments mit dem Typ xyz haben. Angezeigt werden soll aber nur die Issue, wo auch die Beschreibung, das Textfeld dazu gehört. Weglassen geht also nicht.
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#5

Re: Doppelte Datensätze aus Select ausfiltern

  Alt 21. Feb 2008, 09:05
Hat keiner eine Idee wie Distinct mit Textfeldern geht? Was ich bräuchte wäre quasi ein distinct nur auf den PK.

Bei Group by müssen meine ich alle Felder aufgeführt werden, die auch nach dem Select aufgeführt sind. das scheint auch nicht mit Textfeldern zu gehen.

So würde es gehen, wenn distinct mit Textfeldern klarkommen würde

SQL-Code:
select distinct i.* from tb_issues i, tb_comments c
where c.fk_issueid = i.issueid and c.FK_CommentTypeID = 1
and description like '%help%'
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
soulies

Registriert seit: 9. Dez 2005
234 Beiträge
 
#6

Re: Doppelte Datensätze aus Select ausfiltern

  Alt 21. Feb 2008, 09:37
hoi,

[idee]
Funktioniert die 'distinct' abfrage wenn der datentyp auf 'varchar' geändert wird ?
[/idee]

ich weiß du hast MS SQL aber bei mir funkt es mit MySQL ...


cya
  Mit Zitat antworten Zitat
Benutzerbild von vsti
vsti

Registriert seit: 20. Sep 2004
Ort: Syke
70 Beiträge
 
Delphi 2005 Architect
 
#7

Re: Doppelte Datensätze aus Select ausfiltern

  Alt 21. Feb 2008, 09:46
SQL-Code:
select i.* from tb_issues i
where i.issueid in (select distinct c.fk_issueid from tb_coments c and c.FK_CommentTypeID = 1 and description like '%help%')
so oder so ähnlich sollte es auch bei dir funktionieren

Edit: Format
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Doppelte Datensätze aus Select ausfiltern

  Alt 21. Feb 2008, 11:41
In deinem Subselect fehlt mindestens das where
  Mit Zitat antworten Zitat
Benutzerbild von vsti
vsti

Registriert seit: 20. Sep 2004
Ort: Syke
70 Beiträge
 
Delphi 2005 Architect
 
#9

Re: Doppelte Datensätze aus Select ausfiltern

  Alt 21. Feb 2008, 11:57
*hust* Bitte das erste AND durch ein WHERE ersetzen
Thorsten
  Mit Zitat antworten Zitat
NormanNG

Registriert seit: 1. Feb 2006
294 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Doppelte Datensätze aus Select ausfiltern

  Alt 21. Feb 2008, 12:01
Hi,

Distinct ist zwar sicher nicht dier perfomateste Lösung, aber die Text-Spalten kann man nach varchar(..) casten, dann gehts auch.
Gruß
Norman
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz