PDA

View Full Version : SQL scartare valori a 0 in una SUM...


dani&l
26-02-2002, 09:17
Sapete come fare per scartare i valori che danno risultato 0 in una SUM ???

Precisamente ho una select di diversi campi tra cui uno è la somma e sottrazione di un determinato campo, e siccome può darmi 0 come risultato lo vorrei scartare.
SELECT campo1,campo2, SUM (campoa-campob) qta
from tabelle
where ????

ho provato a mettere nella where: qta<>0 ma mi dice che non esiste la colonna !!

A dimenticavo, è una select x creare un report in SQL REPORT....

Tassadar
26-02-2002, 09:35
Hai provato a mettere SUM(....) as qta
where qta <> 0 ?

dani&l
26-02-2002, 11:19
ho provato ma mi segnala nome colonna (qta) non esistente !?!

Another
26-02-2002, 16:26
Scusa, ma SUM(campoa-campob) ti ritorna lo stesso valore x tutti i record della query?

Nn capisco che cosa faccia..
.. se mi aiuti a capire forse ti posso dare una mano:p

lufo
26-02-2002, 19:41
e se fai così??

SELECT campo1,campo2, SUM (campoa-campob) AS qta
FROM tabelle
WHERE campoa <> campob

badaze
26-02-2002, 19:42
where (campoa-campob) <> 0

lufo
26-02-2002, 19:44
Originariamente inviato da badaze
[B]where (campoa-campob) <> 0
scondo me la mia è più simpatica! :D

badaze
26-02-2002, 19:47
Originariamente inviato da lufo
[B]
scondo me la mia è più simpatica! :D

Ma xche fare semplice quando puoi fare complicato !
:o


Ciao Lufo !
;)

lufo
26-02-2002, 19:52
Originariamente inviato da badaze
[B]

Ma xche fare semplice quando puoi fare complicato !
:o


Ciao Lufo !
;)

perchè tutti i bravi programmatori sanno bene come complicarsi la vita! :D
Ciao Friul! ;)

dani&l
27-02-2002, 10:18
Purtroppo io ho semplificato con campoa e campob ,ma in verità è una tabella contenente delle quantità associate ad una causale ed in base a questa esegue la somma o la sottrazione. Quindi il campo qta non è proprio (campoa-campob) ma è:

sum(decode(sign(50-nvl(mpcodcau,0)),1,nvl(mpqta,0),-1,-nvl(mpqta,0)))as qta

Ho provato a mettere tutta la stringa nella where ma essendo una funzione di raggruppamento (sum) sql si arrabbia!!

cionci
27-02-2002, 11:08
Non ho ben capito...non vuoi che nel risultato appaiano campi con valore 0 ?

Allora :

Select *
From (tuaQuery)
Where qta <> 0;

dani&l
27-02-2002, 13:02
Originariamente inviato da cionci
[B]Non ho ben capito...non vuoi che nel risultato appaiano campi con valore 0 ?

Allora :

Select *
From (tuaQuery)
Where qta <> 0;

esatto, solo che così mi dà un errore dicendo che non esiste la colonna qta (essendo un alias). Il qta è il risultato di una sum(..)

badaze
27-02-2002, 15:28
Spiegaci con parole cosa vuoi fare !

cionci
27-02-2002, 16:59
Io credo che così debba funzionare :
SELECT *
FROM (SELECT ...., sum(decode(sign(50- nvl(mpcodcau,0)),1,nvl(mpqta,0),-1,-nvl(mpqta,0))) AS qta
FROM Tabella)
WHERE qta <> 0