Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/02/2011, 10h42   #1
Membre éclairé
 
Homme Adel SOUFI
Ingénieur d'étude
Inscription : décembre 2010
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Adel SOUFI
Âge : 28
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur d'étude
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2010
Messages : 257
Points : 314
Points : 314
Envoyer un message via MSN à adelneo
Par défaut condition si dans sql

J’ai la requête sql suivante :

Code :
1
2
3
4
5
6
7
SELECT 
    montant_ttc,
    forfait,
    montant_ttc/1.17 AS montant_ht,
    montant_ttc-(montant_ttc / 1.17) AS tva,
    forfait- (montant_ttc / 1.17) AS retenue
FROM factures;
montant_ttc , forfait sont des champs de la table factures.
montant_ht, tva, retenue sont des champs calculés

Le champ "retenue" contiendra des valeurs négatives, positives et nulles.
Les valeurs négatives sont celles qui m'intéressent.
Est ce qu'il y a une possibilité d'avoir un null à la place de chaque valeur positive ou nulle de la retenue ??

Exemple:
Ce que j'obtiens :
montant_ttc forfait montant_ht tva retenue
3500 3500 2991.45 508.54 508.54
2000 1500 1709.40 290.59 -209.40
1700 1500 1452.99 247.00 47.00

Ce que je veux obtenir :

montant_ttc forfait montant_ht tva retenue
3500 3500 2991.45 508.54 null
2000 1500 1709.40 290.59 -209.40
1700 1500 1452.99 247.00 null

J’utilise firebird comme sgbd et je rappel que c'est une requête donc je ne peux pas utiliser les triggeres.
adelneo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 10h49   #2
Modérateur
 
Avatar de Cl@udius
 
Homme Claude Renouleaud
Développeur informatique
Inscription : février 2006
Messages : 4 754
Détails du profil
Informations personnelles :
Nom : Homme Claude Renouleaud
Âge : 49
Localisation : France, Hautes Pyrénées (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2006
Messages : 4 754
Points : 6 767
Points : 6 767
Salut

Utilise IIF.
Code :
1
2
3
4
5
6
7
SELECT 
    montant_ttc,
    forfait,
    montant_ttc/1.17 AS montant_ht,
    montant_ttc-(montant_ttc / 1.17) AS tva,
    IIF(forfait- (montant_ttc / 1.17) >= 0, NULL, forfait- (montant_ttc / 1.17) AS retenue
FROM factures;
@+
__________________
A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira.
Cl@udius est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/02/2011, 11h19   #3
Membre éclairé
 
Homme Adel SOUFI
Ingénieur d'étude
Inscription : décembre 2010
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Adel SOUFI
Âge : 28
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur d'étude
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2010
Messages : 257
Points : 314
Points : 314
Envoyer un message via MSN à adelneo
aprés l'ajout des parenthese :
Code :
IIF((forfait- montant_ttc / 1.17) <= 0, NULL, forfait- montant_ttc / 1.17) AS retenue
ça marche trés bien.
merci.
adelneo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h28.


 
 
 
 
Partenaires

Hébergement Web