Hi,
ich möchte eine Tabelle wie folgt “umformatieren”:
Ursprung:
CODE BETRIEB
1 1111
1 2222
2 2222
2 3333
2 4444
Zieltabelle:
CODE BETRIEB
1 1111 + 2222
2 2222 + 3333 + 4444
Probleme:
A) Gibt es eine Aggregatfunktion die ich nutzen kann ?
every bekomm ich nicht zum laufen…
B) Kann ich da per while-Schleife rangehen ?
Solange sich CODE nicht ändert, fasse zusammen…
Frage: Wie müßte die while-Schleife so ungefähr aussehen ?
habe ja keinen Wert bei dem ich sagen kann, solange i kleiner … ???
Wie würdet ihr das machen ???
Ich dank euch !
v.botz
vollbotz:
Hi,
ich möchte eine Tabelle wie folgt “umformatieren”:
Ursprung:
CODE BETRIEB
1 1111
1 2222
2 2222
2 3333
2 4444
Zieltabelle:
CODE BETRIEB
1 1111 + 2222
2 2222 + 3333 + 4444
Probleme:
A) Gibt es eine Aggregatfunktion die ich nutzen kann ?
every bekomm ich nicht zum laufen…
B) Kann ich da per while-Schleife rangehen ?
Solange sich CODE nicht ändert, fasse zusammen…
Frage: Wie müßte die while-Schleife so ungefähr aussehen ?
habe ja keinen Wert bei dem ich sagen kann, solange i kleiner … ???
Wie würdet ihr das machen ???
Ich dank euch !
v.botz
So:
test=*# select * from bla;
id | t
----+------
1 | bla1
1 | bla2
1 | bla3
2 | foo1
2 | foo2
(5 rows)
test=*# select id, array_to_string(array_agg(t),' + ') from bla group by id;
id | array_to_string
----+--------------------
1 | bla1 + bla2 + bla3
2 | foo1 + foo2
(2 rows)
Andreas
suuper,
vielen dank - genau das brauch ich…!!!
Anmerkung: erst ab PostGre Version 8.4
Alla
Jein - geht auch mit älteren Versionen, man muß sich nur eine passende Aggregatfunktion basteln, aber die Doku enthält dafür ein exakt passendes Beispiel.
Andreas
ads
27. Mai 2010 um 08:13
#5
vollbotz:
PostGre
“PostGre” ist so wie MerCed, PorSch, OpE, LogiTe, KenWoo, GarMi, SieMen, …
SCNR
okok - ab jetzt PostGres
hat zum obigen thema aber doch nochmal eine Frage:
> Da meine Anzeige eine [font="]**nichtproportionalen Schrift nutzt sind die Spalten doch wieder nicht immer untereinander.
Ich möchte damit ja sozusagen den Text positionieren…**
array_to_string(array_agg(rpad(“REBE”, 10, ’ ‘)),’ | ') as “REBE”
“Portugiese | Spatburgun | Dunkelfeld | Spatburgun | Riesling”
“Riesling | Johanniter | Portugiese | Spatburgun | Riesling | Riesling”
kann ich die Schiftart irgendwo beinflussen ?
schöner wäre es natürlich wenn ich es über eine TAB-Steuerung erreichen könnt - gibts da was ??
Alla - Dank euch
[/font]
vollbotz:
okok - ab jetzt PostGres
hat zum obigen thema aber doch nochmal eine Frage:
> Da meine Anzeige eine [font="]**nichtproportionalen Schrift nutzt sind die Spalten doch wieder nicht immer untereinander.
Ich möchte damit ja sozusagen den Text positionieren…**
array_to_string(array_agg(rpad(“REBE”, 10, ’ ‘)),’ | ') as “REBE”
“Portugiese | Spatburgun | Dunkelfeld | Spatburgun | Riesling”
“Riesling | Johanniter | Portugiese | Spatburgun | Riesling | Riesling”
kann ich die Schiftart irgendwo beinflussen ?
schöner wäre es natürlich wenn ich es über eine TAB-Steuerung erreichen könnt - gibts da was ??
Alla - Dank euch
[/font]
Hä?
Für hier im Forum? Dafür gibt es "
" und "
", also spitze Klammer auf, code, spitze Klammer zu.
Andreas
akretschmer:
Für hier im Forum? Dafür gibt es "
" und "
", also spitze Klammer auf, code, spitze Klammer zu
Du meinst eckige Klammer nicht spitze, oder?
[noparse]
Hier kommt der Code
[/noparse]
Edit:
@vollbotz :
Hier ist eine Liste aller Tags die Du verwenden kannst: BB-Code Liste - PG-Forum.de
hmm, hab die [] jetzt mal eingefügt (nochmal als ARRAY!!!) - wirklich passieren tut dann aber nix…
SELECT
“CODE”,
array_to_string (ARRAY [array_agg(rpad(“REBE”, 10, ‘-’))],’ | ’ )
as “REBE”
from akut.pdadaten
group by “CODE”;
Ergebniss bleibt weiterhin gleich, dh die Anzahl der Zeichen stimmt zwar, untereinander sind sie deswegen aber wegen der Schriftart nicht !
“Riesling-- | Johanniter | Portugiese | Spatburgun | Riesling-- | Riesling–”
“Portugiese | Spatburgun | Dunkelfeld | Spatburgun | Riesling–”
hab ich da noch nen denkfehler drin ??
dank für ne antwort…!
vollbotz:
hmm, hab die [] jetzt mal eingefügt (nochmal als ARRAY!!!) - wirklich passieren tut dann aber nix…
SELECT
“CODE”,
array_to_string (ARRAY [array_agg(rpad(“REBE”, 10, ‘-’))],’ | ’ )
as “REBE”
from akut.pdadaten
group by “CODE”;
Ergebniss bleibt weiterhin gleich, dh die Anzahl der Zeichen stimmt zwar, untereinander sind sie deswegen aber wegen der Schriftart nicht !
“Riesling-- | Johanniter | Portugiese | Spatburgun | Riesling-- | Riesling–”
“Portugiese | Spatburgun | Dunkelfeld | Spatburgun | Riesling–”
hab ich da noch nen denkfehler drin ??
dank für ne antwort…!
"Riesling-- | Johanniter | Portugiese | Spatburgun | Riesling-- | Riesling--"
"Portugiese | Spatburgun | Dunkelfeld | Spatburgun | Riesling--"
Andreas
Du hast ein verwendet, kein
[noparse]
[code]
SELECT CODE,
array_to_string (ARRAY [array_agg(rpad("REBE", 10, '-'))],' | ' ) as "REBE"
from akut.pdadaten
group by "CODE";
[/noparse]
liefert
SELECT CODE,
array_to_string (ARRAY [array_agg(rpad("REBE", 10, '-'))],' | ' ) as "REBE"
from akut.pdadaten
group by "CODE";
[noparse]
"Riesling-- | Johanniter | Portugiese | Spatburgun | Riesling-- | Riesling--"
"Portugiese | Spatburgun | Dunkelfeld | Spatburgun | Riesling--"
[/noparse]
liefert
"Riesling-- | Johanniter | Portugiese | Spatburgun | Riesling-- | Riesling--"
"Portugiese | Spatburgun | Dunkelfeld | Spatburgun | Riesling--"
Das ist alles auch in dem Link beschrieben den ich schon gepostet habe, und der am Ende der Seite unter dem Link “BB-Code” zu finden ist.
Hier nochmal der Link zum durchlesen: http://www.pg-forum.de/misc.php?do=bbcode
Ach ja noch was: innerhalb des Eingabefeldes im Browser wird ein Zeichensatz verwendet der Unterschiedliche Breiten für unterschiedliche Buchstaben verwendet. Dort kannst Du nicht sauber via Leertaste einrücken. Am besten machst Du das in einem Editor der eine Schriftart mit fester Breite (z.B. Courier) verwendet und kopierst den Text dann in das Eingabefeld (zwischen [noparse]
[/noparse] )