IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Comparer des valeurs et mettre un résultat true ou false


Sujet :

Langage SQL

  1. #1
    Membre à l'essai Avatar de Aro-concept
    Homme Profil pro
    Automaticien Roboticien
    Inscrit en
    Février 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Automaticien Roboticien
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 22
    Points : 11
    Points
    11
    Par défaut Comparer des valeurs et mettre un résultat true ou false
    Bonjour

    Je suis débutant en SQl, j'espère que je vais bien exprimer mon petit problème.

    J'ai plusieurs table avec colonnes vois ci-dessous.

    Ma requête que je souhaiterais faire est la suivante
    Prendre chaque ligne une par une
    Multiplier QTE_LANCEE par QUANTITE
    puis comparer si RESULTAT > QUANTITE (Dernière colonnes) alors LANCEMENT_OF prend la valeur 1
    sinon 0

    Voici ma requête mais elle met 1 dans toute les ligne hors que la pieces jointe je devrais avoir un 0 sur la dernière ligne.

    Nom : Capture.JPG
Affichages : 138
Taille : 30,1 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    select 
    T_ORDREFAB.CODE_OF,
    T_ORDREFAB.REF_ARTICLE,
    T_ORDREFAB.LANCEMENT_OF,
    T_ORDREFAB.QTE_LANCEE,
    T_NOMENCLATURE.REF_COMPOSANT,
    T_NOMENCLATURE.QUANTITE,
    T_ARTICLE.QUANTITE
     
    FROM
    T_NOMENCLATURE
    INNER JOIN T_ORDREFAB ON T_NOMENCLATURE.REF_ARTICLE = T_ORDREFAB.REF_ARTICLE
    INNER JOIN T_ARTICLE ON T_NOMENCLATURE.REF_COMPOSANT = T_ARTICLE.REF_ARTICLE
    where T_ORDREFAB.CODE_SOCIETE = '11'
    and T_ORDREFAB.ETAT_OF = 'ATTENTE'
    and T_ORDREFAB.CODE_OF = 86
    ORDER BY T_ORDREFAB.CODE_OF
    BEGIN
    		DECLARE @OF_Quantite decimal(18);
    		DECLARE @ART_Quantite decimal(18);
     
    		SELECT @OF_Quantite = (T_ORDREFAB.QTE_LANCEE * T_NOMENCLATURE.QUANTITE),
    				@ART_Quantite = T_ARTICLE.QUANTITE,
     
    		FROM
    		T_NOMENCLATURE
    		INNER JOIN T_ORDREFAB ON T_NOMENCLATURE.REF_ARTICLE = T_ORDREFAB.REF_ARTICLE
    		INNER JOIN T_ARTICLE ON T_NOMENCLATURE.REF_COMPOSANT = T_ARTICLE.REF_ARTICLE
    		WHERE T_ORDREFAB.CODE_SOCIETE = '11'
    		and T_ORDREFAB.ETAT_OF = 'ATTENTE'
    		and T_ORDREFAB.CODE_OF = 86
    		ORDER BY T_ORDREFAB.CODE_OF
     
        IF  @OF_Quantite < @ART_Quantite
    		BEGIN
    				Update T_ORDREFAB
    				Set LANCEMENT_OF = 1 FROM T_ORDREFAB
    				WHERE T_ORDREFAB.CODE_SOCIETE = '11'
    				and T_ORDREFAB.ETAT_OF = 'ATTENTE'
     
    		END
    		ELSE
    		BEGIN
     
    			Update T_ORDREFAB
    				Set LANCEMENT_OF = 0 FROM T_ORDREFAB
    				WHERE T_ORDREFAB.CODE_SOCIETE = '11'
    				and T_ORDREFAB.ETAT_OF = 'ATTENTE'
    				and T_ORDREFAB.CODE_OF = 86;;
        END;
     
    END
    J'espère que j'ai bien expliquer.

    Merci pour votre aide et en attendant vos réponse je vous souhaite une agréable journée.

    Ronan

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    S'il n'y a pas d'autre besoin que de multilplier une quantité par une autre, il ne faut pas faire une gestion ligne à ligne, le calcul et la mise à jour peuvent être faits en une seule fois. Ce sera beaucoup plus rapide

  3. #3
    Membre éprouvé
    Femme Profil pro
    Service informatique presque à moi seule (TPE), ex-architecte fonctionnel
    Inscrit en
    Août 2017
    Messages
    358
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 56
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Service informatique presque à moi seule (TPE), ex-architecte fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Août 2017
    Messages : 358
    Points : 931
    Points
    931
    Par défaut
    Si tu veux seulement avoir l'information :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    SELECT 
          T_ORDREFAB.CODE_OF,
          T_ORDREFAB.REF_ARTICLE,
          IF(T_ORDREFAB.QTE_LANCEE * T_NOMENCLATURE.QUANTITE > T_ARTICLE.QUANTITE, 1, 0) AS LANCEMENT_OF,
          T_ORDREFAB.QTE_LANCEE,
          T_NOMENCLATURE.REF_COMPOSANT,
          T_NOMENCLATURE.QUANTITE,
          T_ARTICLE.QUANTITE
     
     FROM T_NOMENCLATURE
    INNER JOIN T_ORDREFAB    ON T_NOMENCLATURE.REF_ARTICLE = T_ORDREFAB.REF_ARTICLE
    INNER JOIN T_ARTICLE     ON T_NOMENCLATURE.REF_COMPOSANT = T_ARTICLE.REF_ARTICLE
     
    where T_ORDREFAB.CODE_SOCIETE = '11'
      and T_ORDREFAB.ETAT_OF = 'ATTENTE'
      and T_ORDREFAB.CODE_OF = 86
    ORDER BY T_ORDREFAB.CODE_OF
    Si tu souhaites mettre à jour une colonne LANCEMENT_OF, tu fais une requête Update dans la même veine.
    Les problèmes sont des opportunités en vêtements de travail. Henry H. Kaiser
    Il n'est pas de problème dont une absence de solution ne finisse par venir à bout. Henri Queuille

  4. #4
    Membre à l'essai Avatar de Aro-concept
    Homme Profil pro
    Automaticien Roboticien
    Inscrit en
    Février 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Automaticien Roboticien
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2019
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    Re Bonjour

    Merci pour vos réponse.
    ca fonctionne maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] Comparer des valeurs dans des cellules
    Par michel2662 dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 22/06/2017, 15h00
  2. comparer des valeurs binaires en algèbre
    Par novices dans le forum Langage
    Réponses: 1
    Dernier message: 12/03/2007, 23h55
  3. [Tableaux] Comparer des valeurs dans un tableau
    Par Dirty Harry dans le forum Langage
    Réponses: 13
    Dernier message: 03/02/2007, 00h52
  4. Comparer des valeurs.
    Par Fred2209 dans le forum C++
    Réponses: 5
    Dernier message: 14/12/2006, 00h32
  5. comparer des valeurs
    Par nah_wah dans le forum Langage
    Réponses: 15
    Dernier message: 23/09/2005, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo