Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Bessere Lösung für "Group by" mit 100 Feldern gesucht. (https://www.delphipraxis.net/211627-bessere-loesung-fuer-group-mit-100-feldern-gesucht.html)

BlueStarHH 13. Okt 2022 14:51

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:
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
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?

Uwe Raabe 13. Okt 2022 15:05

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')

BlueStarHH 13. Okt 2022 17:26

AW: Bessere Lösung für "Group by" mit 100 Feldern gesucht.
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1513246)
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')

Danke, genau das was ich gesucht habe! Funktioniert perfekt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz