Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zusammenfassen aber verschiedene Bedingungen (https://www.delphipraxis.net/116829-zusammenfassen-aber-verschiedene-bedingungen.html)

Privateer3000 7. Jul 2008 12:16

Datenbank: mdb • Zugriff über: ado

Zusammenfassen aber verschiedene Bedingungen
 
Hihio,
ich häng ein wenig fest.
Ich benötige 3 mal eine Punktezusammenfassung
allerdings zu etwas unterschiedlichen Bedingungen.
Also etwa:
SQL-Code:
Select spie,sum(me*pu) AS zalles FROM t1 WHERE spie=spnummer AND fertig=False
Nun kommen zwei weitere Abfragen, etwa so:
SQL-Code:
Select spie,sum(me*pu) AS zalles FROM t1 WHERE spie=spnummer AND sonder=True AND fertig=False
und
SQL-Code:
Select spie,sum(me*pu) AS zalles FROM t1 WHERE spie=spnummer AND verlor=True AND fertig=False
Nun finden alle drei Abfragen hintereinander statt und funktionieren auch.
Kann man dies zusammenfassen zu einer, oder fehlt hier eine Normalisierung
zum Beispiel?

Grüße

mkinzler 7. Jul 2008 12:23

Re: Zusammenfassen aber verschiedene Bedingungen
 
SQL-Code:
Select
    spie,
    sum(me*pu) AS zalles,
    SUM( IIF( Sonder = True, me*pu, 0)) as zsonder,
    SUM( IIF( Verlor = True, me*pu, 0)) as zverlor
FROM
    t1 
WHERE
    spie=spnummer AND fertig=False;

Privateer3000 7. Jul 2008 12:28

Re: Zusammenfassen aber verschiedene Bedingungen
 
Danke mkinzler!
Ist das IIF korrekt?

mkinzler 7. Jul 2008 12:30

Re: Zusammenfassen aber verschiedene Bedingungen
 
Könnte auch nur If() heissen ( ist m.W. beim MSSQL so)

Privateer3000 7. Jul 2008 12:35

Re: Zusammenfassen aber verschiedene Bedingungen
 
Danke,
eine letzte Frage noch, was bedeutet das in
SQL-Code:
SUM( IIF( Sonder = True, me*pu, 0)) as zsonder
da ,0?

mkinzler 7. Jul 2008 12:38

Re: Zusammenfassen aber verschiedene Bedingungen
 
Das IIF() liefert für jede Zeile, wenn die Bedingung wahr ist me*pe zurück sonst 0. Diese Werte werden dann für summiert.

Privateer3000 7. Jul 2008 12:45

Re: Zusammenfassen aber verschiedene Bedingungen
 
Ich hab es so probiert,
nun kommt eine Fehlermeldung
"Undefinierte Funktion 'if' in Ausdruck".
Woran kann das liegen?

mkinzler 7. Jul 2008 12:52

Re: Zusammenfassen aber verschiedene Bedingungen
 
In Access müsste es IIF() heissen. Sonst könnte man es auch mit CASE..WHEN versuchen

Privateer3000 7. Jul 2008 13:14

Re: Zusammenfassen aber verschiedene Bedingungen
 
Perfekt !
genauso funktioniert es.
Was ist das nun genau?
Ein subselect?
Können die Aggregate auch unterschiedlich sein?

mkinzler 7. Jul 2008 13:19

Re: Zusammenfassen aber verschiedene Bedingungen
 
Zitat:

Was ist das nun genau?
Ein subselect?
Nein eine Funktion die auf die Werte angewandt wird.
Können die Aggregate auch unterschiedlich sein? Ja


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz