Zum Hauptinhalt springen
Weil einfach - produktiver ist
Der Daten Spezialist

✅ Kinderleichte Datenintegration - Import / Export
✅ Keine Programmierung dank visueller Modellierung
✅ Einfaches ETL-Tool mit vielseitigen Möglichkeiten

Flowheater Chart

Suchergebnis (Gesucht wurde: GroupBy)

  • FlowHeater-Team
07 Nov. 2025 12:53
FlowHeater-Team antwortete auf Zusammenführen von mehreren Zeilen
Hallo Herr Mundt,

das geht sehr einfach mit dem GroupBy Heater . Hier müssen Sie die Option „Jede Gruppe beginnt mit String im Wert“ aktivieren und tragen dann z.B. „M1“ als Gruppenstartwert ein. So weiß der GroupBy Heater dass er eine neue Gruppierung durchführen muss und führt alle Zeilen so lange zusammen bis wieder der Wert „M1“ ansteht.
Über dem String Append Heater und eingeschalteter Gruppierung können Sie dann die einzelnen Zeilenwerte zusammenfassen. Im Anhang finden Sie ein kleines Beispiel dazu.

Markierung im Screenshot
  1. GroupBy Heater mit aktivierter Option „Jede Gruppe beginnt mit String im Wert“
  2. String Append Heater mit eingeschalteter Gruppierung
 

 

Dateianhang:

Dateiname: mehrere-ze...hren.zip
Dateigröße:5.49 KB

 
  • Peter Meier
28 Apr. 2024 09:08
Wiederholende Nodes wurde erstellt von Peter Meier
Hallo zusammen

Ich habe eine SQL Datenquelle mit einer Sicht wo Aufträge und Positionen verbindet. Vereinfachtes Beispiel:
Code:
Auftragsnummer | Auftragsposition | Inhalt 123456 | 1 | Testinhalt 654321 | 1 | Sonstiges 654321 | 2 | Anderes

Daraus möchte ich ein JSON generieren das folgenden Aufbau hat:
Code:
{   "Kopfbereich": {     "Auftraege": [       {         "Nummer": "123456",         "Positionen": [           {             "Nr": "1",             "Inhalt": "Testinhalt"           }         ]       },       {         "Nummer": "654321",         "Positionen": [           {             "Nr": "1",             "Inhalt": "Sonstiges"           },           {             "Nr": "2",             "Inhalt": "Anderes"           }         ]       }     ]   } }

Ist das mit Flowheater aktuell so möglich?
Mit GroupBy habe ich hinbekommen, dass es nur ein Eintrag pro Auftragsnummer macht, aber sonst hänge ich da als Flowheater Neuling noch fest. Den Kopfbereich möchte ich z.B. nur einmal und die Positionen ggf. mehrfach.

Schon mal Danke für die Hilfe.
  • FlowHeater-Team
11 Aug. 2023 05:03
FlowHeater-Team antwortete auf Write-Geschwindigkeit bei Excel und CSV
Hallo Herr Ferrari,

das geht leider nicht, die Zeilenbasierende Verarbeitung geht aktuell nur über den TextFile Adpater, der InMemory Adapter kann auch nur Datensatzbezogen, Zeile für Zeile, lesen. Sie müssten von Excel nach Text konvertieren und dann im zweiten Step per TextFile Adapter lesen.

Wenn es aber nur wenige Zeilen pro Datensatz sind könnten Sie die Verarbeitung auch über den GroupBy Heater und mehreren Bedingungen durchführen. Das würde auch mit dem Excel Adapter direkt gehen!

Hinweis: Ab ca. 10 Zeilen pro Datensatz wird das aber sehr unübersichtlich und endet in einer Fleißarbeit. Hier finden Sie ein Beispiel wie Sie mit dem GroupBy Heater mehrere Zeilen zur einem Datensatz zusammenfassen können: "Werte aus mehreren Zeilen zu einer zusammenfassen"
 
  • FlowHeater-Team
26 März 2023 16:00
FlowHeater-Team antwortete auf Funktion "LastKnow"-Heater aus V4.3.2.1 Beta2 ?
Hallo Ralf,

der LastValue Heater gibt den letzten verfügbaren Wert einer Spalte zurück. Das kann gut für Gruppierungen verwendet werden wo z.B. im ersten Satz ein Wert steht der die Gruppierung einleitet aber in den Folgesätzen wird dieser Wert nicht mehr gefüllt.

Im Anhang findest du ein kleines Beispiel dazu.

Dateianhang:

Dateiname: heater-last-known.zip
Dateigröße:1.83 KB

  • FlowHeater-Team
15 März 2023 16:37
FlowHeater-Team antwortete auf GroupBy aber zwei Ausgabezeilen
Hallo Christoph,

das geht nur mit einem kleinen Trick. Sie benötigen dazu eine Zwischentabelle sowie einen weiteren Verarbeitungsschritt.

Vorgehen) Im ersten Verarbeitungsschritt Gruppieren Sie die Datenmenge mit dem GroupBy Heater wie gehabt. Die Ausgabe schieben Sie aber in eine InMemory Adapter Tabelle. Im Zweiten Verarbeitungsschritt lesen Sie dann von dieser InMemory Adapter Tabelle in fügen pro Zeile einen weiteren Datensatz mit dem GroupOut Heater hinzu und verändern hier die Ausgabe. Über den AutoID Heater können Sie prüfen welchen Datensatz Sie gerade verarbeiten und können über IF-THEN-ELSE Bedingungen steuern was Sie wo ausgeben möchten.

Im Anhang finden Sie ein kleines Beispiel dazu.

 

Dateianhang:

Dateiname: groupby-groupout.zip
Dateigröße:11.03 KB
  • Christoph
15 März 2023 09:07
GroupBy aber zwei Ausgabezeilen wurde erstellt von Christoph
Hallo Herr Stark,
ich hänge leider wieder an einem kleinen Problem. Ich habe eine Mysql Tabelle mit Daten. Aus dieser Tabelle möchte ich einen aggregierten Bericht in csv Form erstellen. Dazu aggregiere ich die Spalte Land mit dem GroupBy Heater. Das funktioniert sehr gut, es werden die Daten der Länder wie gewünscht aufaddiert. Mein Problem ist, dass ich pro Land bzw. Datensatz einen zweiten Datensatz benötige. Das heißt ich müsste aus jeder aggregierten Zeile noch eine weitere hinzufügen. Hier hänge ich fest.

Haben Sie hier einen Tipp für mich?

Vielen Dank!
 
  • Kai
26 Okt. 2022 12:54
Problem mit IF vor dem GroupBy gelöst.
Danke!
  • Kai
26 Okt. 2022 10:48
Hallo Herr Stark,

ich scheitere aktuell an einem trivialen Problem.
Die einzeilige Zieldatei soll die Gesamtsumme, die Summe der positiven und die Summe der negativen Dezimalwerte enthalten. Die SQL-Ursprungsabfrage hat mehrere tausend Zeilen.
Die Gesamtsumme habe ich über einen GroupBy - Heater problemlos erhalten.
Was mir fehlt, ist eine Idee für die Summen der positiven und negativen Werte. Fällt Ihnen dazu etwas ein?

Mit besten Grüßen
Kai Hauser
  • FlowHeater-Team
15 Aug. 2022 10:09
FlowHeater-Team antwortete auf Im vorherigen Datensatz ein Flag setzen
Hallo Michael,

das geht so einfach leider nicht, Du benötigts dazu eine temporäre „Tabelle“ worüber Du das abbilden kannst.

Ich habe mal ein Beispiel erstellt, siehe Anhang. Hier wurde eine InMemory Adapter Tabelle verwendet um die Daten einzulesen. Während des Einlesens wird ein zusätzliches Feld „Reihenfolge“ mit einem eindeutigen Zähler über den AutoID Heater befüllt. Dieses Feld wird anschließend zur Sortierung sowie Aktualisierung der InMemory Adapter Tabelle genutzt.

Im zweiten Verarbeitungsschritt wird dann die InMemory Tabelle gelesen und über dem Wert werden die Daten per GroupBy Heater gruppiert. Hier wird dann beim letzten Datensatz ein Update auf die InMemory Tabelle ausgeführt wo dann dieser Datensatz mit einem "X" markiert wird.

Im letzten Verarbeitungsschritt wird die so angereicherte InMemory Tabelle ausgegeben.

 

Dateianhang:

Dateiname: letzten-sa...eren.zip
Dateigröße:11.99 KB

 
  • FlowHeater-Team
18 Apr. 2022 12:13
FlowHeater-Team antwortete auf Bestandsliste nach Abgängen pflegen
Hallo Ralf,

die Berechnungen könnten etwas kompliziert werden, das hängt davon wie die Datei aussehen bzw. wo die Daten herkommen. Aber im Prinzip bist du schon auf dem richtigen weg.
  1. Einrichten einer FlowHeater Server Aufgabe die den Ordner überwacht und falls eine CSV Datei vorhanden ist die Aufgabe an startet.

  2. Einlesen der CSV Datei Bestellungen mit den Bestellungen in eine InMemory Tabelle .

  3. Dann die InMemory Tabelle so sortieren, dass du mit dem GroupBy Heater über die Artikel Berechnungen bzgl. der Menge durchführen kannst. Das Ergebnis wird in eine weitere InMemory Tabelle geschrieben.

  4. Dann einlesen der Bestandsdatei in eine weitere InMemory Tabelle . Hierbei aktuallisiert du gleich die Werte mit dem CSV Lookup über den String Replace Heater .

  5. Am Ende liest du die eben geschrieben Bestandsdaten InMemory Tabelle und erstellst die CSV Bestandsliste mit den aktuellen Werten.

 
  • Ralf Birk
17 Apr. 2022 20:28
Bestandsliste nach Abgängen pflegen wurde erstellt von Ralf Birk
Hallo Robert,

ich bin's schon wieder....
Ich habe vor 2 Tagen ein wie ich im Vorfeld gemeint habe "kleines" Projekt begonnen. 
Leider habe ich mir da ganze anders vorgestellt und beiße mir gerade die Zähne aus.
Ich habe einen Eingangsordner in den jeden Tag um die gleiche Zeit eine CSV-Datei mit Bestellungen reinkommt.
In einem Anderen Verzeichnis habe ich ebenfalls als CSV eine Bestandsliste die angepasst werden muss.
In der Eingangsdatei ist für den Artikel eine ID, die auch in der Bestandsliste ist. In der Bestandsliste sind nur etwas 100 Artikel.
In der Eingangsdatei kann ein Artikel auf mehrmals abgerufen werden (Aber je Datensatz immer nur einen).
Die Ausgangsdatei ist wie folgt aufgebaut:
ArtikelID;Beschreibung;Anfangsbestand;Bestand Vortag;Entnahme;AktuellerBestand;Datum_Aktueller_Bestand
AT123;Testartikel1;20000;10753;16;10737;17.04.2022
ES456;Testartikel2;15000;8369;59;8310;17.04.2022
usw.

Ich habe mit Groupby und diese in einer Inmemory zu zählen angefangen, habe die Eingangsdatei einen CSV-Lookup probiert... alles hat nicht geklappt. Bestimmt habe ich nur einen kleinen Denkfehler. In einem fast 6 Jahre Post habe ich eine ähnliche Aufgabenstellung gesehen. Da wurde allerdings die Menge in der Ursprungsdatei aktualisiert. Das kann ich nachstellen. Mit der täglich zu aktualisierenden Gesamtbestandsliste geht das leider nicht.
Hab ich einen Denkfehler?
  • Ralf Birk
07 März 2022 21:46
Hallo Robert,

danke für deine schnelle Antwort wobei ich mir das fast gedacht habe.
Dann werde ich es eben doch mit mehreren Inmemorys machen. Deine Filter(Dublikate) Variante ist auf jedenfall scheller einzubauen als mein GroupBy-IDaufGroupBy-und "1" als Markierung Ich denke aber, das es an der Ausführgeschwindigkeit nichts ändern wird.

Gruß Ralf

PS: Ich habe, als ich den Post abgesetzt habe gesehen, das der Titel irreführend ist und auch inhaltlich Fehler waren. Ich habe keine Möglichkeit gefunden als Ersteller den Post zu editieren. Ist das bei deiner Forensoftware nicht möglich?
  • FlowHeater-Team
22 Jan. 2022 10:16
Hallo Herr Anton,

ist machbar aber etwas aufwendiger. Das Problem ist, der XML Adapter kann Namen von XML Knoten/Nodes nicht dynamisch anhand von vorhandenen Felder der READ Seite generieren. Sie müssen dazu einmal alle möglichen Namen als Felder (Nodes) auf der WRITE Seite definieren.

Damit aber nur diejenigen Felder geschrieben werden die auch gesetzt sind, benötigen Sie pro Merkmal eine IF-THEN-ELSE Bedingung , die prüft ob das Merkmal anhand der Gruppierung gerade anliegt und nur dann den Feldinhalt setzt. Im XML Adapter müssen Sie zusätzlich die Option „Leere Felder ignorieren“ aktivieren. SO werden XML Knoten (Nodes), die keinen Inhalt haben, nicht in die XML geschrieben bzw. unterdrückt.

Bei Eindeutigen Feldern/Merkmalen ist das kein Problem. Problemtisch sind in Ihrem Fall die Merkmale „ZUSTAND“. Hierfür benötigen Sie einen .NET Script Heater , der pro Artikel anhand der Position diese durchnummeriert und dann ein temporäres eindeutiges Merkmal „ZUSTAND1“, ZUSTAND2“, etc. generiert. Das kann dann anschließend wieder über die bereits bekannte Bedingung geprüft und dem Ausgabefeld zugweisen werden.

Hinweis: Damit die Defintion funktioniert, müssen die Datensätze mit Hilfe des GroupBy Heater über die Artikelnummer gruppiert werden.

Klingt jetzt etwas kompliziert. Im Anhang habe ich Ihnen ein kleines Beispiel erstell, damit sollte es etwas einfacher sein zu verstehen.

 

 

Dateianhang:

Dateiname: dynamische...port.zip
Dateigröße:12.46 KB

 
  • FlowHeater-Team
08 Jan. 2022 12:08
FlowHeater-Team antwortete auf Werte aus mehreren Zeilen zu einer zusammenfassen
Hallo Herr Schober,

um Werte mehrerer CSV Zeilen zu einer zusammenzufassen benötigen Sie den GroupBy Heater . Hiermit werden anhand eines oder mehrere Kriterien gleiche aufeinanderfolgende Werte zusammengefasst bzw. gruppiert. In Ihrem Fall müssen Sie die CSV Spalte Artikelnummer verwenden.

So werden alle gleichen Artikelnummern zu einer Ausgabezeile zusammengefasst. Um jetzt noch zu entscheiden welcher Wert aus welcher Zeilen auf der WRITE Seite ausgegeben werden soll, benötigen Sie den IF-THEN-ELSE Heater mit einer Bedingung. Ich habe Ihnen dazu mal ein Beispiel angelegt. Einmal werden hier alle Referenznummern, getrennt mit den „#“ Zeichen in einer CSV Spalten ausgegeben.
Achtung: Hier muss im String Append Heater die Option Auswirkung auf „ GroupBy Heater “ aktiviert werden.

Dann werden noch ein paar einzelne Werte/Spalten auf der WRITE Seite ausgegeben. Schauen Sie sich das Beispiel mal an, ich denke Sie sollten damit zurechtkommen.

 

 

Dateianhang:

Dateiname: mehrere-cs...ssen.zip
Dateigröße:10.38 KB

 
  • FlowHeater-Team
20 Sep. 2021 05:19
Hallo Sherzod,

leider ist die Beschreibung immer noch nicht so, dass ich mir daraus ableiten kann was sie umsetzen möchten!

Ich habe jetzt mal ein Beispiel erstellt, so wie ich es mir vorstelle. Hier werden über den GroupBy Heater immer 3 Zeilen der Excel Datei zu einem Datensatz der WRITE ( XML ) Seite zusammengefasst.

Auf den Layern (Zeile1…Zeile3) wird jede Zeile separat behandelt. Sie benötigen hier für jeden Wert des jeweiligen XML Knotens eine IF-THEN-ELSE Bedingung um zu unterscheiden welche Zeile gerade abgearbeitet wird.

Schauen Sie sich das Beispiel bitte mal an und beschreiben dann, anhand dieses Beispiels, was noch fehlt.

 

Dateianhang:

Dateiname: excel-xml-import.zip
Dateigröße:21.53 KB
1 - 15 von 109 Ergebnissen angezeigt.
Ladezeit der Seite: 0.532 Sekunden
FlowHeater Logo
FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches
Support & Kontakt
Kontaktinformation

Copyright © 2009-2026 by FlowHeater GmbH. Alle Rechte vorbehalten.