Message posté par : Jérémie
----------------------------------------
Très bonne idéee @Mathieu Denat l'utilisation du nullif et du coalesce pour rendre
plus facile les tests.
Dans QGIS, les deux fonctions existent donc @upriste peut les utiliser. Ce qui n'est
pas le cas de la CTE avec WITH.
L'expression pour la création du champ d'évaluation d'évolution des surfaces
donnerait quelque chose comme :
-----------------
Code :
if( "A" = 3,
CASE
WHEN coalesce(nullif("Surf18",''),0) = 0 AND
coalesce(nullif("Surf15",''),0) > 0
THEN 'surface supprimée en 2018'
WHEN coalesce(nullif("Surf15",''),0) = 0 AND
coalesce(nullif("Surf18",''),0) > 0
THEN 'surface créee en 2018'
WHEN coalesce(nullif("Surf18",''),0) =
coalesce(nullif("Surf15",''),0)
THEN 'surface stable'
WHEN coalesce(nullif("Surf18",''),0) >
coalesce(nullif("Surf15",''),0)
THEN 'surface en progression'
WHEN coalesce(nullif("Surf15",''),0) >
coalesce(nullif("Surf18",''),0)
THEN 'surface en régression'
ELSE NULL
END,
'A différent de 3')
-----------------
A noter : j'ai placé les tests pour suppression et création de surface en premier,
pour éviter d'avoir à ajouter les test AND Surfxx > 0 pour les tests progression et
régressions.
Également, je doute de l'utilité du nullif dans le cas où les champs sont déclarés en
tant que nombre numérique (entier, réel...).
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=354404#p354404
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net