![]() |
Datenbank: Access • Version: 2007 • Zugriff über: jet
Access Group by
Hallo. Ich habe folgendes Problem.
Wenn ich diese Anfrage ohne Group By benutze, werden in meinem Grid ALLE Einträge von *Schuppenanzahl* angezeigt. Es soll jedoch nur der letzte Eintrag jeweils von *Schuppenanzahl* angezeigt werden. Meine Idee war es mit Group By die einträge zu gruppieren, was jedoch nicht klappt.
SQL-Code:
Eine weitere Idee von mir war es auch mit TOP 1 ein Limit zu setzen, was aber bei dem Inner Join nicht geht.
'SELECT * FROM Schuppen s'
+ ' INNER JOIN Schuppenanzahl a' + ' ON s.ID = a.ParentID' + ' WHERE (s.Stand LIKE ''%' + searchstring + '%'') GROUP BY a.ParentID, s.ID ORDER BY a.datum'; Hat jemand eine Idee, vielleicht mit nem SubSelect? |
Re: Access Group by
Wenn Access einen Subselect mit mehreren Werten unterstützt:
SQL-Code:
Select s.*, (select Top 1 * from Schuppenanzahl a where ParentID = s.ID order by ID desc) ...
|
Re: Access Group by
Was auch immer du da eigentlich machen willst...
SQL-Code:
oder
SELECT *
FROM schuppen s INNER JOIN schuppenanzahl a ON s.id = a.parentID WHERE s.stand LIKE :searchstring AND datum = (SELECT MAX(datum) FROM schuppenanzahl WHERE parentID = s.id) ORDER BY a.datum
SQL-Code:
SELECT *
FROM schuppen s WHERE s.stand LIKE :searchstring AND datum = (SELECT MAX(datum) FROM schuppenanzahl WHERE parentID = s.id) |
Re: Access Group by
Zitat:
Zitat:
[quote="omata"]Was auch immer du da eigentlich machen willst...
SQL-Code:
Mhm das kann ich wohl compilieren und funktioniert auch, hat aber nicht den gewünschten Effekt.
SELECT *
FROM schuppen s INNER JOIN schuppenanzahl a ON s.id = a.parentID WHERE s.stand LIKE :searchstring AND datum = (SELECT MAX(datum) FROM schuppenanzahl WHERE parentID = s.id) ORDER BY a.datum Ich möchte eigentlich nur Tabelle Schuppen durchsuchen und dazu passend die LETZTEN einträge von Schuppenanzahl angezeigt bekommen, so bekomme ich noch immer ALLE einträge von Schuppenanzahl angezeigt. :( |
Re: Access Group by
Zitat:
|
Re: Access Group by
Eigentlich brauch ich nur datum und preis.
Habe es auch schon mit
Delphi-Quellcode:
... versucht, hat aber nicht geklappt, selber fehler.
(SELECT Top 1 datum, preis FROM
|
Re: Access Group by
Zitat:
Zitat:
Zitat:
Also noch ein neuer Versuch...
SQL-Code:
SELECT *
FROM schuppen s INNER JOIN schuppenanzahl a ON s.id = a.parentID WHERE s.stand LIKE :searchstring AND datum = (SELECT MAX(datum) FROM schuppenanzahl) ORDER BY a.datum |
Re: Access Group by
Sorry.
Ich versuchs nochma klar zu sagen: Ich möchte EINE komplette Zeile pro Eintrag haben, welche sich aus Schuppen und Schuppenanzahl zusammensetzt. Mit der aktuellen Variante bekomme ich leider wieder alle Einträge aus Schuppenanzahl, was ich nicht möchte. Ich hoffe es ist nun was klarer, tut mir leid. :oops: |
Re: Access Group by
Ich verstehe deine Tabellen- und Daten-Struktur leider nicht, sorry. Vielleicht kann dir ja jemand anderes helfen.
|
Re: Access Group by
Schon okay. Danke trotzdem. :)
Hier nochmal ne genauere Erklärung:
SQL-Code:
also so siehts aus. meine abfrage...
'SELECT * FROM Schuppen s'
+ ' INNER JOIN Schuppenanzahl a' + ' ON s.ID = a.ParentID' + ' WHERE (s.Stand LIKE ''%' + searchstring + '%'') GROUP BY a.ParentID, s.ID ORDER BY a.datum'; Schuppen: 12 [ID], Kartoffeln [Artikel] Schuppenanzahl: 12 [ParentID], 20€ [Preis], 10.02.1988 [Datum] 12 [ParentID], 23€ [Preis], 20.02.1988 [Datum] und ich möcht eben nur einen eintrag aus Schuppenanzahl haben und nicht beide... So sieht mein aktueller versuch aus, als SubSelect. Geht nur leider nicht. :wall:
SQL-Code:
QHousehold.SQL.Text := 'SELECT (SELECT * FROM Schuppen s'
+' WHERE (s.Stand LIKE ''%' + searchstring + '%'')),' +' (SELECT TOP 1 preis FROM Schuppenanzahl WHERE ParentID = s.ID ORDER BY datum DESC) AS Preis,' +' (SELECT TOP 1 datum FROM Schuppenanzahl WHERE ParentID = s.ID ORDER BY datum DESC) AS Datum' +' FROM Schuppen; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 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