Select Sum in visual studio 2008 e sqlserver 2005 express

martedì 31 marzo 2009 - 16.48

Mau67 Profilo | Expert

Ciao al forum, ho il seguente problema, con una select in un winform devo sommare le quantità di una tabella, il
problema è che nella tabella ci possono essere valori nulli e quindi mi va in errore mi correggete questa select
affinchè la somma di valori nullo diventino zero!

SELECt Sum(Quantità) from miatabella

Grazie in anticipo
Mau67

Gianni77 Profilo | Junior Member

SELECt Sum(Quantità) from miatabella WHERE Quantità Not Null

non so se "Not Null" va bene per SQL Express ma comunque il concetto è questo

Mau67 Profilo | Expert

Scusa nella select ho dimenticato un parametro

SELECT Sum(Quantità) from MiaTabella WHERE ID = '"TextBox1.Text"'"

Praticamente può succedere che la somma della quantità di quel determinato ID abbia tutti valori nulli è quindi vorrei che la somma di valori nulli tornasse zero.

Perchè poi il risultato lo devo sottrarre ad un altra select e quindi mi solleva l'eccezione DBNULL.

Non so se sono stato chiaro

Ciao
Mau67

ysdemarc Profilo | Expert

sel ill problema è che nel campo quantita puoi avere valori null allora è ottima la risposta precedente

ossia:
SELECT Sum(Quantità) from MiaTabella WHERE ID = tuovalore AND Quantita IS NOT NULL


se invece il problema è che la sommatoria ti restituisce valore null e al posto di quella vorresti 0

allora potresti scrivere

SELECT (CASE WHEN Sum(Quantità) IS NULL THEN 0 ELSE Sum(Quantità) END) from MiaTabella WHERE ID = tuovalore AND Quantita IS NOT NULL

oppure puoi gestire da codice il tuo DBNull con qualcosa del genere

int result := 0;
if dr["Quantita"] != DBNull.Value
{
result = (int)dr["Quantita"] ;
}

dove dr è il campo DataRow dove vanno a finire i dati e quantità il sinonimo della sommatoria del campo della select
Vincenzo
Programmatore sbilenco

Mau67 Profilo | Expert

ok grazie
Mau67

R3GM4ST3R Profilo | Junior Member

Ciao,
ma se fai

SELECT Sum(isnull(Quantità,0)) AS SOMMA from MiaTabella WHERE ID = tuovalore

Esegui il tutto dalla query SQL!

Praticamente sostituisci alle eventuali righe null il numero 0 che sommato alle altre righe non altera il risultato.

Ciauz

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5