Re: Wert im Zeitverlauf darstellen f ür z.B. die letzen 5 Tage
"Gunnar \"Nick\" Bluth" <[email protected]> Tue, 26 Jan 2016 08:58:16 +0100
| Newsgroups | gmane.comp.db.postgresql.german |
|---|---|
| Message-ID | <[email protected]> |
Am 26.01.2016 um 07:33 schrieb Thomas Markus: > Moins, > > dynamische Spalten sind nicht drin. Insofern musst du jede Spalte fest > definieren. > > bei der Struktur > create temp table t ( > id int, name text, datum date, platz int > ); > > könnte man es so machen: > select > a.name > , (select platz from t where t.name=a.name and t.datum='2015-01-14') > as "14.01.2015" > from > ( select distinct name from t ) a Bezüglich der Darstellung in Reihen hilft dir wahrscheinlich crosstab weiter: http://www.postgresql.org/docs/9.5/static/tablefunc.html Wie du die Leerstellen füllst, hatte ich dir ja schon nicht öffentlichkeitsfähig ;-) per PM geschickt... Gruß, Nick > > > Gruss > Thomas > > Am 25.01.2016 um 20:49 schrieb Thomas Uzunoff: >> Hallo, >> >> ich habe ein Problem, was ich momentan nicht gelöst bekomme. Ich habe >> eine solche Tabelle: >> >> ID |Name |Datum |Platz >> ---------------------------- >> 1 |Gerhard|14.1.2015| 1 >> 2 |Helmut |14.1.2015| 2 >> 3 |Angela |14.1.2015| 3 >> 4 |Gerhard|13.1.2015| 2 >> 5 |Helmut |13.1.2015| 1 >> 6 |Angela |13.1.2015| 3 >> 7 |Gerhard|12.1.2015| 1 >> 8 |Helmut |12.1.2015| 2 >> 9 |Gerhard|11.1.2015| 2 >> 10 |Angela |11.1.2015| 1 >> 11 |Gerhard|10.1.2015| 2 >> 12 |Angela |10.1.2015| 1 >> >> Das gewünschte Ergebnis ist: >> >> Name |14.1.2015|13.1.2015|12.1.2015|11.1.2015|10.1.2015| >> ----------------------------------------------------------- >> Gerhard | 1 | 2 | 1 | 2 | 2 | >> Helmut | 2 | 1 | 2 | | | >> Angela | 3 | 3 | | 1 | 1 | >> >> Hierbei wird an jedem Tag der Platz für alle anwesenden Personen >> festgestellt und über den Zeitverlauf dargestellt. Wenn eine Person an >> einem Tag nicht anwesend war, soll die Zelle leer oder z.B. mit einem >> x oder einer 0 markiert werden. Momentan habe ich das Problem, dass >> meine Abfrage mir zwar die Personen mit den Tagen schon anzeigt, >> leider werden die leeren Felder wie z.B. 11.1.2015-Angelas Platz 1 auf >> den 12.1.2015 verschoben. Die Spalte am 12.1.2015 sieht dann >> fälschlicher weise so aus: >> >> |12.1.2015| >> | 1 | >> | 2 | >> | 1 | >> >> Gerne auch ohne das Datum als Spaltenname. Geht das mit Postgres >> irgendwie? Wenn ja, wie? >> >> Vielen Dank für jeden Hinweis, der mich der Lösung etwas näher bringt. >> >> Thomas >> >> > > > -- Gunnar "Nick" Bluth DBA ELSTER Tel: +49 911/991-4665 Mobil: +49 172/8853339 -- Sent via pgsql-de-allgemein mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-de-allgemein