-
sql Tabelle, die sich in breite und länge vergrößert?
Moin zusammen
3 Dateien
Geldeingang: mit key, Jahr, Monat, Betrag
Basisdaten: mit Key, pool
Pool mit Pool, Text
ein
PHP-Code:
select BApool, max(POBEZ), JAHR, MONAT, sum(Betrag) from BAsisdaten, pool, Geldeingang where GEkey1 =BAkey1 AND BApool = popool group by BApool, jahr, MONAT order by 1, 2, 3, 4
bringt eine schöne Tabelle
PHP-Code:
Pool Bezeichnung Jahr Monat Betrag 1 pool 1 2001 01 55,00 1 Pool 1 2001 02 47,03 ... 1 pool 1 2019 03 17,11 ... 99 pool 99 2019 03 32,11
nun soll diese Ausgabe
so werden
PHP-Code:
pool Bezeichn. 2001/01 2001/02... 2001/12 2002/01 ...2019/03 1 pool 1 55,00 47,03 44,17 12,15 19,12 2 pool 2 12,55 48,90 53,17 155,03 41,17 ... 99 pool 99 77,28 13,55 18,97 41,22 32,11
und ab nächsten Monat ist die letzte Spalte 04/2019
und warscheinlich der Pool 105 der letzte.
Durch Umbuchungen in den Monaten und in den Pools ändern sich nahezu alle Werte, jeden Monat.
Kann ich aus der 1. Auswertung (alles untereinander) die neue aufbauen?
Danke
-
Wenn ich jetzt die Frage verstehen würde...
-
Oh, na ja, die Frage ist, ob es ein SQL gibt, das diese Daten umbaut
Soweit ich es mal gehört habe, hat SQL doch viele neue Funktionen um 'solche' Auswertungen zu machen. aber ich weis nicht einmal, wonach ich googeln soll!
-
Das schon, aber "Spaltengenerierung" gehört da weniger dazu.
Man muss (leider) immer die Spalten für die Tabelle vorher wissen um eine Abfrage auszuführen.
Der SQL-Server stellt dafür eine Reihe von SP's (stored Procedures) zur Verfügung um Spalten dynamisch zu erfinden.
Der Suchbegriff ist "Pivot" bzw. "unpivot", weil man letztendlich eine Pivot-Tabelle erstellt.
Dein SQL kannst du ja (in php dynmaisch) so zusammenbauen:
select BApool, max(POBEZ), JAHR
,sum(case when Monat = 1 then Betrag else null) "2001/01"
,sum(case when Monat = 2 then Betrag else null) "2001/02"
,sum(case when Monat = 3 then Betrag else null) "2001/03"
,sum(case when Monat = 4 then Betrag else null) "2001/04"
from BAsisdaten, pool, Geldeingang
where GEkey1 =BAkey1 AND
BApool = popool
group by BApool, jahr
order by 1, 2, 3
Sowas lässt sich auch in einer SP dann als "dynmaische Tabelle" per Execute und return Cursor zusammenstoppeln.
-
ich habe zwar selber noch nicht mit der SQL-Funktion LISTAGG gearbeitet, aber die Beschreibung geht in die Richtung.
-
Danke JotSo, nette Funktion
Leider nicht so ganz das was ich brauche.
Ich habe es mal versucht und Jahr/Monat sowie betrag in ein AlpaFeld selektiert und ausgegeben.
Schon ne tolle sache!
nur ist es kein 'feste' Tabelle so dass es nun so aussieht
1 Pool 1 1/2010=138, 3/2010=155, 4/2010=188...
2 Pool 2 2/2010=33, 4/2010=1214, 5/2010=21, ...
es sollte aber wenigstens so
Code:
1 Pool 1 1/2010=138, 3/2010=155, 4/2010=188...
2 Pool 2 2/2010=33, 4/2010=1214, 5/2010=21, ...
aussehen.
-
Hallo ILEMax,
bestimmt gibt es dafür komfortablere Lösungen, ich würde aber spontan mal Folgendes testen: ich würde eine neue Datei machen, in der ich je Monate/Jahre einen Datensatz habe mit (nur ein Feld mit Inhalt 1/2010, 2/2010 etc.) alle hinterlege. Die joine ich mit den anderen Dateien (outer join). Für die fehlenden Monate in der Datei 'Geldeingang' bekommst Du den Null-Wert.
Gruß JotSo
-
Wenn du den SQL sowieso dynamisch aufbauen musst, was spricht da gegen meine Lösung?
Similar Threads
-
By programmer400 in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 24-03-16, 13:55
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 20-01-14, 12:40
-
By Melanie in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 13-02-03, 10:30
-
By Steven in forum IBM i Hauptforum
Antworten: 12
Letzter Beitrag: 25-10-02, 10:32
-
By mott in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 02-05-02, 13:08
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks