Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: If Klausel im Select o.ä. gesucht

  Alt 17. Jun 2014, 22:51
Ich musste das für Pervasive anpassen mit when:
Code:
select K.Datum,
LTrim(P.PersNr),
P.Name,
P.Vorname,
sum(Case when K.Konto = '2' then K.Saldo else 0 END) as Saldo2,
sum(Case when K.Konto = '8' then K.Saldo else 0 END) as Saldo8,
sum(Case when K.Konto = '32' then K.Saldo else 0 END) as Saldo32
from Kontenstand as K, Personalstamm as P
where (K.PersId=P.Identifikation)
and
((K.Konto='2')or(K.Konto='8')or(K.Konto='32') )
and
(((K.Datum) = CURRENT_DATE()-1)) and (K.Saldo <> '')
order by
  K.Datum, P.PersNr, P.Name, P.Vorname
Dann erhalte ich aber die folgende Fehlermeldung:
Column invalid. Must be a group by column: Datum in SELECT LIST


Zur Verdeutlichung noch mal mein Problem:

Meine Tabelle "Kontenstamm" hat folgenden Aufbau:

ID..Konto...PersId...Datum.........Saldo
1.....3............100.....20140616.......420
2.....2............4711...20140616........520
3.....8............100.....20140616.......120
4.....32...........4711...20140616........420
...

Mein Ergebnis soll dann so ausschauen:
..Datum...|.EXPR_1..|.EXPR_2...|..Name......|..Vor name....|..Saldo2....|...Saldo8.....|...Saldo32
6/16/2014.|.................|.100............|..Albers. ......|..Albert............|.(Null).........|...12 0............|...(Null).
6/16/2014.|.................|.4711..........|..Albers.. .....|..Albert............|.520............|...(Nu ll).........|...420....



Edit: Wenn ich anstelle order by dann Group by nehme scheint alles zu funktionieren!

@mkinzler, Vielen Dank!


Gute Nacht an Alle!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen (17. Jun 2014 um 23:01 Uhr)
  Mit Zitat antworten Zitat