AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-String ohne doppelte Werte ausgeben
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-String ohne doppelte Werte ausgeben

Ein Thema von Tau · begonnen am 28. Mai 2005 · letzter Beitrag vom 28. Mai 2005
Antwort Antwort
Tau

Registriert seit: 17. Mär 2003
Ort: Bludenz
221 Beiträge
 
Delphi 7 Enterprise
 
#1

SQL-String ohne doppelte Werte ausgeben

  Alt 28. Mai 2005, 01:50
Datenbank: MS-SQL • Zugriff über: ADO
Hallo Leute

habe auch wieder einmal ein Problem.

Ich möcht aus einer Spalte alle Daten anzeigen lassen
ohne das es doppelte Werte in der Ausgabe gibt.

Bis jetzt habe ich vollgenden SQL-String

SQL-Code:
SELECT Tabelle.FeldNr, Tabelle.FeldID
FROM Tabelle
WHERE (((Tabelle.FeldNr) Not In (SELECT [FeldNr] FROM [Tabelle] As Tmp GROUP BY [FeldNr] HAVING Count(*)>1 )))
ORDER BY Tabelle.FeldNr
leider werden die Doppelten Datensätze nicht mit angezeigt.

für Tipps oder Anregungen währe ich sehr Dankbar

schöne Grüsse
Tau
http://www.quad-offroad.com
wer kämpft kann verlieren aber wer nicht kämpft hat verloren
( Delphi 7 )
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#2

Re: SQL-String ohne doppelte Werte ausgeben

  Alt 28. Mai 2005, 06:58
Hallo,

ich würde das so schreiben.

SQL-Code:
SELECT Tabelle.FeldNr, Tabelle.FeldID
FROM Tabelle
WHERE (((Tabelle.FeldNr) In (SELECT [FeldNr] FROM [Tabelle] Where [FeldNr] HAVING Count(FeldNr)>1 )))
ORDER BY Tabelle.FeldNr
Group by FeldNr, FeldID
Ich habe das jetzt nicht getestet so sollte das aber gehen.
Gruß

Albi
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: SQL-String ohne doppelte Werte ausgeben

  Alt 28. Mai 2005, 07:09
Hallo tau,
Zitat von Tau:
Ich möcht aus einer Spalte alle Daten anzeigen lassen ohne das es doppelte Werte in der Ausgabe gibt.
Deinen Wunsch würde ich so umsetzen:

SELECT DISTINCT FeldNr FROM TABELLE ORDER BY FeldNr Dein SQL-Statement suggeriert aber eher, dass du alle Sätze der Tabelle finden möchtest, deren FeldNr mehr als einmal vorkommt. Von dieser Ergebnismenge möchtest du die Spalten FeldNr und FeldID geordnet nach FeldNr ausgeben.

SQL-Code:
SELECT FeldNr, FeldID FROM Tabelle WHERE FeldNr IN (
  SELECT FeldNr FROM Tabelle GROUP BY FeldNr HAVING COUNT(FeldNr) > 1
) ORDER BY FeldNr
Wenn ich total daneben liege, dann vergiss einfach, was ich geschrieben habe.

Grüße vom marabu
  Mit Zitat antworten Zitat
Bebe

Registriert seit: 3. Apr 2005
Ort: Berlin
104 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: SQL-String ohne doppelte Werte ausgeben

  Alt 28. Mai 2005, 07:31
Hallo Tau,

wenn ich es richtig verstehe, ist das Feld "FeldID" einzigartig.

Dann würde ich auf das Feld verzichten und nur noch ...

SQL-Code:
SELECT Tabelle.FeldNr
FROM Tabelle
GROUP BY Tabelle.FeldNr;
schreiben.

Dein SQL-String unterdrückt alle doppelten Einträge durch
[(((Tabelle.FeldNr) Not In (SELECT [FeldNr] FROM [Tabelle] As Tmp GROUP BY [FeldNr] HAVING Count(*)>1 )))] , wie auch Dein Ergebnis aussieht.
Wenn Du das "Not" vor "In" entfernst, dann würden nur noch die doppelten Einträge ausgegeben werden.

Beides willst Du aber nicht. Deswegen ohne FeldID und Where ...

Außer das FeldID wird benötigt, dann wird es schwierig.

Ich hoffe ich konnte Dir helfen.

Gruß
Bebe
  Mit Zitat antworten Zitat
MarkusB

Registriert seit: 3. Apr 2004
Ort: Hamburg
105 Beiträge
 
#5

Re: SQL-String ohne doppelte Werte ausgeben

  Alt 28. Mai 2005, 08:02
Mion Tau!

Dein SQL-Statment lässt vermuten, dass du aus deiner Tabelle nur die Datensätze mit einer FeldNr, die nur einmal in der Tabelle vorkommt, rausfiltern willst. Das würde ich folgendermaßen versuchen:

SQL-Code:
Select FeldNr, FeldID from tabelle
Where FeldNr in (Select FeldNr from Tabelle
                 Group by FeldNr
                 Where count(FeldNr) = 1)
Viele Grüße
Markus
  Mit Zitat antworten Zitat
Tau

Registriert seit: 17. Mär 2003
Ort: Bludenz
221 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: SQL-String ohne doppelte Werte ausgeben

  Alt 28. Mai 2005, 17:59
Hallo alle zusammen

Danke für die vielen Anregungen.

Ich hatte wohl gestern zur später stunde den
Wald vor lauter Bäume nicht mehr gesehen.

Bebe -> Dein Ansatz hat mich auf die richtige Idee gebracht.

Die Lösung:
SQL-Code:
SELECT FeldNr
FROM Tabelle
GROUP BY FeldNr
HAVING (NOT (FeldNr IS NULL))
Danke an alle
schöne Grüsse
Tau
http://www.quad-offroad.com
wer kämpft kann verlieren aber wer nicht kämpft hat verloren
( Delphi 7 )
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:00 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