sql Anweisung
arie
- programmiertechnik
0 Matze0 Ole0 Philipp Hasenfratz0 susanne0 HF
Hallo Leute!
habe ein Problem und zwar,ich kann die Sql-Anweisung nicht schreiben!:-(Also ich möchte aus der Spalte 'Stunden'die Werte zusammenzählen,aber das Vorzeichen '+' oder '-',kommt aus einer anderen Spalte.Wie kriege ich das hin??
Danke!!!
Grüße Arie
Hi Arie,
in welchen Bezug steht denn das Vorzeichen zu der Summe in der anderen Spalte ???
Weshalb eigentlich. Überlass das Vorzeichen doch (im negativen Fall) der Summierung.
Gruss Matze
hi Arie
als gedankenanstoss:
erst die positiven auslesen und summieren, dann die nagativen auslesen und summieren und dann die negativen von den positiven subtrahieren.
so long
ole
(8-)>
Halihallo arie
habe ein Problem und zwar,ich kann die Sql-Anweisung nicht schreiben!:-(Also ich möchte aus der Spalte 'Stunden'die Werte zusammenzählen,aber das Vorzeichen '+' oder '-',kommt aus einer anderen Spalte.Wie kriege ich das hin??
Au waya. Also Grundsätzlich fällt mir nur das ein:
Falls du nicht '+' oder '-', sondern 1 und -1 hättest, könntest du die beiden Felder Multiplizieren. Aber bei + oder - müsste a) ein expression-evaluator in der DB implementiert sein, welcher ein mathematischer Ausdruck interpretiert (nicht vorhanden) oder b) eine If-Abfrage, welche nicht Bestandteil von SQL ist.
Ausweg:
Zwei Queries, wo du einmal alle Tupel/Datensätze mit dem Flag '+' summierst und ein zweiter, wo du alle mit dem Flag '-' summierst. Dann brauchst du nur noch das Ergebnis des zweiten Queries vom ersten abziehen und hast das Ergebnis, aber wie gesagt: du brauchst zwei Queries.
Viele Grüsse
Philipp
Hi Philipp
Ausweg:
Zwei Queries, wo du einmal alle Tupel/Datensätze mit dem Flag '+' summierst und ein zweiter, wo du alle mit dem Flag '-' summierst. Dann brauchst du nur noch das Ergebnis des zweiten Queries vom ersten abziehen und hast das Ergebnis, aber wie gesagt: du brauchst zwei Queries.
Wieso zwei Queries? Alternativ könnte man doch über + und - gruppieren und
die Aggregatsfunktion sum() benutzen und dann die Differenz im Programm
berechnen, dafür brauchts ja keine Query mehr.
Gruss Daniela
Halihallo Daniela
Zwei Queries, wo du einmal alle Tupel/Datensätze mit dem Flag '+' summierst und ein zweiter, wo du alle mit dem Flag '-' summierst. Dann brauchst du nur noch das Ergebnis des zweiten Queries vom ersten abziehen und hast das Ergebnis, aber wie gesagt: du brauchst zwei Queries.
Wieso zwei Queries? Alternativ könnte man doch über + und - gruppieren und
die Aggregatsfunktion sum() benutzen und dann die Differenz im Programm
berechnen, dafür brauchts ja keine Query mehr.
Stimmt. War mit denken wohl etwas kurz angebunden ;)
Viele Grüsse
Philipp
PS: Lektion des Tages: Bevor man das erste mal postet erst einen Kaffee trinken!
Hallo Arie,
oje! Dieses Beispiel kann einen Preis für schlechtes Datenbankdesing gewinnen!
Beste Lösung: Alles neu!
Was mir aber dennoch dazu einfällt:
Addiere die negativen und positiven Spalten separat (...WHERE Vorzeichenspalte = "+") und bilde dann die Differenz. Einfache Lösung, aber trotzdem ein Graus!
Gruß
Susanne
Hallo Leute!
habe ein Problem und zwar,ich kann die Sql-Anweisung nicht schreiben!:-(Also ich möchte aus der Spalte 'Stunden'die Werte zusammenzählen,aber das Vorzeichen '+' oder '-',kommt aus einer anderen Spalte.Wie kriege ich das hin??
Danke!!!Grüße Arie
Hallo Arie!
Ich verstehe dich nicht ganz. Warum kommt das + bzw. - aus einer anderen spalte? Was willst du genau damit bezwecken?
Gruß HF