AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Select um Daten zu grupieren
Thema durchsuchen
Ansicht
Themen-Optionen

Select um Daten zu grupieren

Ein Thema von Dumpfbacke · begonnen am 25. Feb 2021 · letzter Beitrag vom 25. Feb 2021
Antwort Antwort
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Select um Daten zu grupieren

  Alt 25. Feb 2021, 09:58
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBX
Hallo Leute,
ich brauche mal Hilfe beim erstellen eines Selects.

Hier zuerst mal der Aufbau der Datenabk welcher leider nicth geändert werden kann.

Delphi-Quellcode:
Regal,Fach,Art, Artikelnummer
1, 1, Grundbedarf, 123456
1, 1, Erweiterungsbedarf1 987654
1, 1, Erweiterungsbedarf2 125478
2, 1, Grundbedarf, 546287
3, 1, ErweiterungsbedarfA 741365
Als Ergebnis möchte ich haben

1, 1, Grund, Erweiterung
2, 1, Grund,
3, 1, , Erweiterung

Bei mir kommt bis jetzt höchstens dieses hier raus

1, 1, Grund,
1, 1, , Erweiterung
1, 1, , Erweiterung
2, 1, Grund,
3, 1, , Erweiterung

Code:
Select Regal,Fach,iif(Art starting with 'Grund','Grund',''), iif(Art not starting with 'Grund','Erweiterung','')
From Lager
where Art <> ''
group by Regal,Fach,art
Es kann in der Tabelle je Regal je Fach keine Zeile, einen Zeile oder mehrere Zeit mit Grundbedarf geben. Genau so bei Erweiterung.

Als Ergebnis möchte ich also je Regal je Fach sehen ob dort kein oder mindestens ein Grund und / oder eine Erweiterung vorhanden ist.

Als Bonus wäre es noch schon wenn es noch eine weitere Spalte gebne könnte wo die Anzahl der Erweiterungen in Summe gezählt werden würde.

Könnt Ihr mir da mal auf die Sprünge helfen. Ich bekomme es nicht hin

Danke schon einmal Tanja.
Tanja

Geändert von Dumpfbacke (25. Feb 2021 um 10:27 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Select um Daten zu grupieren

  Alt 25. Feb 2021, 10:06
In etwa so
SQL-Code:
select
  Regal, Fach, List( Art, ',')
from
  <Tabelle>
group by
  Regal, Fach;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

AW: Select um Daten zu grupieren

  Alt 25. Feb 2021, 10:13
Nur mal als Idee:
SQL-Code:
SELECT
  Regal,
  Fach,
  SUM(CASE WHEN Art STARTING WITH 'GrundTHEN 1 ELSE 0 END),
  SUM(CASE WHEN Art NOT STARTING WITH 'GrundTHEN 1 ELSE 0 END)
FROM
  Uetech_Rebell
WHERE
  Art <> ''
GROUP BY
  Regal, Fach
Die Ergebnismenge enthält weder "Grund" noch "Erweiterung", da diese IMHO nicht aussagekräftig sind, sondern stattdessen die Anzahl der Vorkommen (theoretisch, da ungetestet).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Select um Daten zu grupieren

  Alt 25. Feb 2021, 10:29
oder mit CTE:

Code:
with thelp as
       (select distinct
               t.regal
             , t.fach
             , iif(t.art like 'Grund%', 'Grund', iif(t.art like 'Erweiterung%', 'Erweiterung', '')) art
               from uetech_rebell t)
select t.regal
     , t.fach
     , (select list(thelp.art) from thelp where thelp.regal = t.regal and thelp.fach = t.fach)

 from
     (
        select distinct
               regal
             , fach
               from thelp
     ) t
Frank Reim
  Mit Zitat antworten Zitat
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Select um Daten zu grupieren

  Alt 25. Feb 2021, 10:55
Danke an alle jetzt funktioniert es so wie ich es haben wollte. Ich habe die Lösung hier von DeddyH genommen. Die List funktion von mkinzler kannte ich noch nicht bis jetzt. Dieses eröffnet ganz andere Möglichkeiten. Deshalb hier noch eine Erweiterung meiner Frage hier. Kann man noch zwei weitere Spalten erzeugen in dem Select von DeddyH welche die Werte mit List auflisten . Es sollte dann in der eine Spalte die Liste alle Möglichkeiten der Grund und in der zweiten Spalte die Liste alle Möglichkeiten der Erweitungen vorhanden sein ?

Tanja
Tanja
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

AW: Select um Daten zu grupieren

  Alt 25. Feb 2021, 11:02
LIST ist genauso eine Aggregatfunktion wie SUM, also sollte das schon möglich sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Select um Daten zu grupieren

  Alt 25. Feb 2021, 11:40
Danke es so einfach wenn man nicht blond ist und sich auskennt. Jetzt funktioniert es genau so wie ich es haben möchte.

Tanja
Tanja
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:02 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