Utiliser les expressions CASE
Découvrez le format et les composants des expressions CASE et certaines expressions CASE fréquemment utilisées que vous pouvez générer afin de créer des champs calculés dans Rapports.
Fonctionnement
Une expression CASE est une expression conditionnelle qui vous permet de modifier le mode de représentation des données. Les expressions CASE permettent à une instruction de retourner un ou plusieurs résultats possibles en fonction des diverses conditions qui sont analysées comme vraies.
Vous pouvez créer des champs calculés à l'aide des expressions CASE au moyen du générateur de formules Simple.
Pour plus d’informations, consultez la section Création de champs calculés.
Format d'expression CASE
Le format d'une expression CASE est le suivant :
CASE
WHEN c'est vrai THEN retourne ceci
WHEN c'est vrai THEN retourne ceci
...
ELSE retourne ceci
END
Composants de l'expression CASE
| Composant | Description |
|---|---|
| CASE | le composant initial dans une expression CASE |
| WHEN |
définit une condition telle que WHEN Problème clos ? Est égal à 0 Une expression CASE peut contenir plusieurs composants WHEN. Les composants WHEN doivent précéder le composant ELSE. |
| THEN |
Crée un lien avec le composant WHEN et indique à Rapports la valeur à retourner lorsque la condition est respectée Par exemple, WHEN Problème clos ? Est égal à 0 THEN 'Problème ouvert' |
| ELSE | Un composant est utilisé pour indiquer à Rapports ce qu'il doit effectuer lorsqu'aucune des conditions WHEN ne sont respectées |
| END |
Définit la fin de l'expression CASE Pour que l'expression CASE soit valide, vous devez ajouter END. |
Ordre d'exécution de l'expression CASE
Les expressions CASE sont exécutées de gauche à droite. Si un champ correspond à plusieurs conditions WHEN, il retourne le résultat de la première condition.
Par exemple, si vous disposez d'un projet intitulé Projet X et d'un champ calculé avec la logique suivante, le champ affiche « SOX » :
CASE
WHEN Nom du projet = Projet X THEN 'SOX'
WHEN Nom du projet N'est pas nul THEN 'Paie'
ELSE 'Déplacements et loisirs'
END
Expression CASE fréquemment utilisées
Le tableau ci-dessous fournit une liste des expressions CASE fréquemment utilisées que vous pouvez générer à l'aide du générateur de formules simples :
L'heure du serveur de Rapports est UTC et le champ Date du jour s'affiche au format UTC. UTC est une échelle de temps mondiale ayant remplacé l'heure moyenne de Greenwich (GMT). Dans la plupart des cas, les deux échelles sont équivalentes. Dans le cas des données DateHeure UTC, si la conversion en UTC franchit la ligne de changement de date dans un sens ou dans l'autre, la date est ajustée d'une journée.
| Nom du champ calculé | Expressions CASE | Description | Autres considérations |
|---|---|---|---|
|
Testing_Status |
CASE WHEN Préparateur du test de contrôle IS NOT NULL AND examinateur détail du test de contrôle IS NOT NULL AND examinateur général du test de contrôle IS NOT NULL THEN 'Terminé' WHEN Préparateur du test de contrôle IS NOT NULL OR Examinateur détail du test de contrôle IS NOT NULL OR Examinateur général du test de contrôle IS NOT NULL THEN 'En cours' ELSE 'Non démarré' END |
Affiche un résumé de test de contrôle avec un statut de test calculé |
|
|
Control_Tested Control_Passed Control_Failed |
CASE WHEN Contrôle effectif ? IS NOT NULL THEN 1 ELSE 0 END CASE WHEN Contrôle effectif ? = 1 THEN 1 ELSE 0 END CASE WHEN Contrôle effectif = 0 THEN 1 ELSE 0 END |
Affiche un résumé du test de contrôle qui indique si le contrôle s'est déroulé correctement ou a échoué. |
|
| Is_Overdue |
CASE WHEN Problème clôturé ? = 1 THEN 'Clôturé' WHEN Problème clôturé IS NULL THEN '' WHEN Date du jour < Problème corrigé THEN 'Non' ELSE 'Oui' END |
|
Les conditions s'exécutent de gauche à droite. Si un champ correspond à plusieurs conditions WHEN, il retourne le résultat de la première condition. |
| Is_Overdue_Aging |
CASE WHEN Issue Closed = 0 AND Days To Remediate < 0 THEN Days to Remediate * 1 ELSE 0 END |
affiche le nombre de jours restant jusqu'au délai de remédiation |
|
| Is_Overdue_Bucket |
CASE WHEN Problème clos = 0 AND Jours jusqu'à la remédiation <= -1 AND Jours jusqu'à la remédiation >= -30 THEN '0-30' WHEN Problème fermé = 0 AND Jours disponibiles jusqu'à la remédiation <= -31 AND Jours disponibles jusqu'à la remédiation >= -60 THEN '31-60' WHEN Problème fermé = 0 AND Jours disponibiles jusqu'à la remédiation <= -61 AND Jours disponibles jusqu'à la remédiation >= -90 THEN '61-90' WHEN Problème clos = 0 AND Jours jusqu'à la remédiation <= -91 '91+ ELSE 'Actuel' END |
Affecte des tranches d'âge au nombre de jours de retard du problème. |
|
| Not_Yet_Due |
CASE WHEN Problème clos = 0 AND Date du jour < Problème remédié AND Problème remédié IS NOT NULL THEN 1 WHEN Problème fermé = 0 AND Problème remédié IS NULL THEN 0 WHEN Problème fermé = 0 AND Problème remédié <= Date du jour AND Problème remédié IS NOT NULL THEN 0 WHEN Problème clos = 1 THEN 0 ELSE 9999 END |
Identique à Is_Overdue |
Gère les conditions suivantes :
|