Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
YAQ on using Having clause
Message
 
 
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Versions des environnements
SQL Server:
SQL Server 2005
Divers
Thread ID:
01521114
Message ID:
01521119
Vues:
28
>Suppose I have the following SQL Select:
>
>
>select SUM(FIELD1) AS FIELD1, SUM(PODET.ITEM_QUANT) AS ITEM_QUANT, SUM(POREC.REC_QTY) AS REC_QTY,  POREC.PODET_PK FROM POREC RIGHT 
>JOIN PODET ON PODET.PODET_PK = POREC.PODET_PK 
>GROUP BY  PODET.PODET_PK 
>HAVING SUM(POREC.REC_QTY) < SUM(Podet.ITEM_QUANT) > 0
>
>
>What if all values of REC_QTY are NULL, what would be the SUM( REC_QTY )? In my test it works, that is, the SQL creates a query. But I am not sure if it is accurate.
>
>I tried to change the HAVING to something like this:
>
>
>HAVING CASE SUM(POREC.REC_QTY) IS NULL THEN SUM(PODET.ITEM_QUANT)>0 ELSE 
>SUM(POREC.REC_QTY < SUM( PODET.ITEM_QUANT) END
>
>
>But I get error. I suppose I can't use IS NULL with SUM(), Correct?

NULLs are excluded by the aggregate functions from calculations. So, if you have NULL values, then they will be not included into results. If all records have NULL values, then the result of aggregation is NULL.

If you want to use 0 instead of NULL, use

SUM(coalesce(myField,0))
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform