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

MS SQL Server Discussion :

Problème requêtes SELECT et UPDATE !


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2013
    Messages : 15
    Par défaut Problème requêtes SELECT et UPDATE !
    Bonjour tout le monde ^^
    je voulais vous demander de l'aide à propos d'une requête SQL. En fait, je veux transmettre le résultat d'une requête SELECT à une autre requête UPDATE. Comment procéder ?

    Voilà mes 2 requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT c.Code_commande, c.Code_employé, c.Code_article, c.Date_commande, c.Quantité, c.Etat 
    FROM Commande c,Article a 
    WHERE (c.Code_article = a.Code_article) 
    AND (c.Quantité >= a.Qte) 
    AND (c.Etat != 'Validée')
    et transmettre son résultat à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Commande SET Etat='Validée'

  2. #2
    Membre expérimenté
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Par défaut
    Alors je connais pas du tout votre schéma mais logiquement ce que vous voulez faire est ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    UPDATE Commande
    SET Etat = 'Validée'
    FROM Commande c
    JOIN Article a
    	ON c.Code_article = a.Code_article
    WHERE c.Quantité >= a.Qte
    AND c.Etat <> 'Validée'

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2013
    Messages : 15
    Par défaut
    MERCI beaucoup evanbarke ! ça marche !!

    En fait, j'avais essayé d'utiliser une autre solution, celle d'une vue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE VIEW vwCommande AS 
    SELECT c.Code_commande, c.Code_employé, c.Code_article, c.Date_commande, c.Quantité, c.Etat 
    FROM Commande c,Article a 
    WHERE ((c.Code_article = a.Code_article) AND (c.Quantité <= a.Qte) AND (c.Etat IS NULL OR c.Etat != 'Validée'));
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE vwCommande SET Etat='Validée';
    puis


  4. #4
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2013
    Messages : 15
    Par défaut
    Excusez-moi, mais il me reste un petit problème d'affichage (SELECT).
    En fait, dans mon application, j'ai 2 DataGridView : la 1ère est titulée "Commandes Reçues" et la 2ème "Commandes validées".
    Votre 1ère requête marche à merveille pour la mise à jour de ma table COMMANDE. Le problème parvient lorsque je veux afficher dans la 2ème DataGridView seulement les nouvelles commandes validées (ceux parmi qui sont affichées dans la 1ère DataGridView), et non tous les commandes validées de la table COMMANDE (l'historique).

    Quelle est la requête SQL pour ne pas afficher tout l'historique de la table COMMANDE ayant comme Etat "Validée" ??

    (je développe une application Windows avec C#)

  5. #5
    Membre expérimenté
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Par défaut
    Je suis pas certain d'avoir bien compris le besoin mais vous pouvez essayer la clause OUTPUT pour afficher que les lignes mises à jour dans la même transaction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    UPDATE Commande
    SET Etat = 'Validée'
    OUTPUT  INSERTED.*
    FROM Commande c
    JOIN Article a
    	ON c.Code_article = a.Code_article
    WHERE c.Quantité >= a.Qte
    AND c.Etat <> 'Validée'
    Et si vous voulez afficher les données avec la mise à jour il suffit de mettre OUTPUT DELETED.*

  6. #6
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2013
    Messages : 15
    Par défaut
    MERCI BEAUCOUP cher evanbarke ! Votre aide m'a été très précieux !

Discussions similaires

  1. Problème requête SELECT condition WHERE string
    Par Glherbier dans le forum VBA Access
    Réponses: 3
    Dernier message: 27/10/2010, 18h43
  2. SQL Problème requête SELECT
    Par Seth_75 dans le forum Développement
    Réponses: 2
    Dernier message: 30/03/2009, 15h02
  3. Problème requête SELECT ORACLE
    Par vizlebiz dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/02/2008, 16h20
  4. Problème Requête SELECT sur champ texte
    Par arnaud_verlaine dans le forum WinDev
    Réponses: 5
    Dernier message: 02/10/2007, 21h19
  5. [SQL] Problème requête SELECT
    Par dolf13 dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 04/07/2006, 23h54

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