![]() |
Query 1 zu n
Hallo Leute
habe ein kleines Problem mit meiner Query Sie will nicht so wie ich es will. :wall: In der Datenbank Demo1 sind ~1000 Daten in der Test1 sind ~3500 Daten. zwischen Demo1 und Test1 ist eine 1 zu n Beziehung und ich möcht für die Ausgabe ins DBGrid nur immer den ersten Datensatz von Test1 haben.
SQL-Code:
habe aber leider keine Ahnung wie ich meinen Select ummodeln muss damit ich das Ergebnis erhalte.
SELECT dbo.Demo1.*, dbo.Test1.*
FROM dbo.Demo1 RIGHT OUTER JOIN dbo.Test1 ON dbo.Demo1.DemID = dbo.Test1.TesDemID H I L F E besten Dank im voraus Tau |
Re: Query 1 zu n
So könntest du es mal versuchen:
SQL-Code:
SELECT dbo.Demo1.DemID, dbo.Test1.TestDemID
FROM "dbo.Demo1" dbo.Demo1, "dbo.Test1" dbo.Test1, WHERE (dbo.Demo1.DemID = dbo.Test1.TestID) |
Re: Query 1 zu n
Hallo Tau,
du musst eine Spalte auswählen aus Test1, von der du nur z.B. das Minimum nimmst. In der Group by Klausel müssen dann aber alle anderen Felder stehen. Beispiel: Du hast eine Tabelle Abteilung, in der alle Mitarbeiter mit ihren Abteilungen stehen und eine Tabelle Autos, in der alle Autos dieser Mitarbeiter stehen. Du willst aber für jeden Mitarbeiter nur das 1. Auto der Tabelle Autos:
SQL-Code:
select A.ID, MIN(A.Marke), G.abteilung FROM Autos A, abteilung G
WHERE (A.ID = G.ID) GROUP BY A.ID, G.abteilung |
Re: Query 1 zu n
Bitte gewöhnt Euch doch an die Datenbank zu nennen, mit der Ihr arbeitet.
Zum Problem: Da du nur den 1. Datensatz aus Test1 im DB-Grid anzeigen möchtest, brauchst Du den Kram aus Demo1 ja nicht und dann könnte:
SQL-Code:
funktionieren
select Top 1 B.*
from dbo.Demo1 as A right outer join dbo.Test1 as B on B.TestDemID=A.DemID order by B.FeldNameNachDemSortiertWerdenSoll Gruß |
Re: Query 1 zu n
Hallo Memo
klabt leider nicht so ganz. bekomme immer einen Syntx Fehler unbekant mfg Tau |
Re: Query 1 zu n
bei Memo ist das Komma vor dem Where überflüssig/schädlich, ausserdem bastelt er einen Crossjoin, den er anschließend in der where-Klausel einschränkt - ist je nach Datenbank extrem langsamer als der Ansatz, den Du selbst mit right outer join gewählt hast.
|
Re: Query 1 zu n
Hallo Leuselator
Zitat:
sonst würde das ganze keinen Sinn machen. mfg Tau |
Re: Query 1 zu n
dann nimm sie halt dazu mit
SQL-Code:
Das Feld der OrderBy-Klausel bestimmt, welcher Datensatz zu oberst zu stehen kommt und demzufolge zurückgegeben wird.
select Top 1
A.FeldDuBrauchstAusDemo1, A.NochSonFeld, B.* from dbo.Demo1 as A right outer join dbo.Test1 as B on B.TestDemID=A.DemID order by B.FeldNameNachDemSortiertWerdenSoll Du hast immer noch nicht die Datenbank genannt, mit der Du arbeitest :-( |
Re: Query 1 zu n
Hallo Leuselator
Sorry Zitat:
mfg Tau |
Re: Query 1 zu n
dann sollte meine letzte Variante Dein Prob lösen...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 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-2025 by Thomas Breitkreuz