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