Re: CASE und Aggregatfunktion

From: Marc Hanisch <marc(dot)hanisch(at)ateam(dot)de>
To: Andreas Kretschmer <akretschmer(at)spamfence(dot)net>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: CASE und Aggregatfunktion
Date: 2009-03-26 10:54:41
Message-ID: 49CB5EF1.9030409@ateam.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

--- Original-Nachricht ---
Absender: Andreas Kretschmer
Datum: 26.03.2009 11:29 Uhr
>
>
> Mir erscheint es unlogisch, was Du machst:
>
> test=*# select * from summen;
> i | s
> ---+------
> 1 | 10
> 2 | 20
> 3 | -5
> 4 | -100
> (4 Zeilen)
>
> Zeit: 0,218 ms
> test=*# select case when sum(s) > 0 then sum(s) end as einnahmen, case when sum(s) < 0 then sum(s) end as ausgaben from summen;
> einnahmen | ausgaben
> -----------+----------
> | -75
> (1 Zeile)
>
> Zeit: 0,274 ms
> test=*# select sum(case when s > 0 then s else 0 end) as einnahmen, sum(case when s < 0 then s else 0 end) as ausgaben from summen;
> einnahmen | ausgaben
> -----------+----------
> 30 | -105
> (1 Zeile)
>
>
> Welche Variante willst Du?
>
>
Hallo Andreas,

genau die erste Variante will ich! Vielleicht hab ich mein Beispiel
schlecht gewählt, mir ging es inhaltlich darum zu sehen, dass ich, wenn
ich z.B. eine Kasse verwalte, ich am Monatsende im Minus bin (also -75)
oder halt im Plus. War aber nur ein frei gewähltes Beispiel.
Inhaltlich geht es mir darum, dass der Part

sum(s)

nach dem WHEN angegeben wird, und wenn der Inhalt meinen Erwartungen
entspricht, ich ihn ja nochmal von Postgres berechnen lassen muss...
Toll wäre so was in der "Art" wie:

when a = sum(s) > 0 then a else 0

Mir ist schon klar, dass man Variablen nur mit einer benutzerdefinierten
Funktion und PLPSQL erreichen kann, aber ich hoffe es verdeutlicht, was
ich meine.

Viele Grüße und danke für eure Nerven ;-)
Marc

In response to

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Marc Hanisch 2009-03-26 10:56:05 Re: CASE und Aggregatfunktion
Previous Message Andreas Kretschmer 2009-03-26 10:29:45 Re: CASE und Aggregatfunktion