Thema: Delphi SQL-Statement

Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#3

Re: SQL-Statement

  Alt 12. Sep 2005, 13:04
Zitat von Flocke:
SQL-Code:
select Tabelle1.Id, count(Tabelle2.Id)
from Tabelle1
inner join Tabelle2 on Tabelle2.Link=Tabelle1.Id
having count(Tabelle2.Id)>1
Richtige Tabellen- und Feldnamen musst du einsetzen.
Und die Gruppierung nicht vergessen.
Da Gruppierungen den Optimizer ad absurdum führen, wäre ich für einen ähnlichen Weg wie Flocke: Nur die PKs der betreffenden Datensätze holen... (Also Lösung 2)
SQL-Code:
SELECT a.Id
      ,a.Feld1
      ,a.Feld2
      ,a.Feld3
      ,a.Feld4
      ,a.Feld5
FROM TableA a
      ,TableB b
WHERE b.ForeignKey(+) = a.Id
GROUP BY a.Id
         ,a.Feld1
         ,a.Feld2
         ,a.Feld3
         ,a.Feld4
         ,a.Feld5
HAVING COUNT(DISTINCT b.Id) > 1
SQL-Code:
SELECT a.Id
FROM TableA a
      ,TableB b
WHERE b.ForeignKey(+) = a.Id
GROUP BY a.Id
HAVING COUNT(DISTINCT b.Id) > 1
Prüfe ob du ohne forcierte Eindeutigkeit beim Zählen auskommst. Das ist nämlich nach der Gruppierung die zweite halb angezogene Handbremse...
  Mit Zitat antworten Zitat