![]() |
Datenbank: Oracle • Zugriff über: odbc
SQL-Statement
Hallo Gemeinde,
ich bin dabei ein SQL-Statement zu formulieren. Diese sollte folgendes Ergebnis liefern: Ich möchte zwei Tabellen miteinander verknüpfen. Das Select soll mir alle Datensätze der einen Tabelle zurückliefern, die in der verknüpften Tabelle mehr als einen Record hat. Ich stehe grad auf dem Schlauch... |
Re: SQL-Statement
SQL-Code:
Richtige Tabellen- und Feldnamen musst du einsetzen.
select Tabelle1.Id, count(Tabelle2.Id)
from Tabelle1 inner join Tabelle2 on Tabelle2.Link=Tabelle1.Id having count(Tabelle2.Id)>1 [edit=alcaeus]code- durch sql-Tags ersetzt :stupid: Mfg, alcaeus[/edit] |
Re: SQL-Statement
Zitat:
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:
Prüfe ob du ohne forcierte Eindeutigkeit beim Zählen auskommst. Das ist nämlich nach der Gruppierung die zweite halb angezogene Handbremse...
SELECT a.Id
FROM TableA a ,TableB b WHERE b.ForeignKey(+) = a.Id GROUP BY a.Id HAVING COUNT(DISTINCT b.Id) > 1 |
Re: SQL-Statement
Hi,
ok,danke! Ich habe es etwas anders gelöst: Tabelle mit sich selbst gejoint. Anschließend nach doppelten Einträgen (IDs) gesucht. Danke + Tschüß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:38 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 by Thomas Breitkreuz