![]() |
Datenbank: Firebird • Version: 3.x • Zugriff über: IBDAC
Bessere Lösung für "Group by" mit 100 Feldern gesucht.
Ich habe eine Artikeltabelle mit über 100 Feldern und eine Tabelle ArtikelGruppe, die über die ArtikelNr verbunden sind. Ich möchte nun alle Felder der Artikeltabelle und zusätzlich alle Artikelgruppe in einem weiteren Feld zurückbekommen. Könnte ich mit einem join und group by machen:
Code:
Problem ist nun, dass ich dafür a.* nicht verwenden kann. Alle 100 Felder müssten ausgeschrieben werden und im Group by müsste ich 100 Zahlen angeben. Kann man das kürzer/sinnvoller machen? Irgendwie die Artikelgruppe per Subselect holen und in einem Feld auflisten?
select a.*, list(ag.Gruppe) from Artikel a
left join ArtikelGruppe ag on ag.ArtikelNr = a.ArtikelNr where a.ArtikelNr in ('a', 'b') group by 1,2,...,100 |
AW: Bessere Lösung für "Group by" mit 100 Feldern gesucht.
Ohne das jetzt selbst ausprobieren zu können:
SQL-Code:
select a.*, b.AGList from Artikel a
left join (select ag.ArtikelNr, list(ag.Gruppe) as AGList from ArtikelGruppe ag group by ag.ArtikelNr) b on b.ArtikelNr = a.ArtikelNr where a.ArtikelNr in ('a', 'b') |
AW: Bessere Lösung für "Group by" mit 100 Feldern gesucht.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:22 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