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

PHP & Base de données Discussion :

Requête SQL avec clause where max


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Par défaut Requête SQL avec clause where max
    Bonjour,

    après plusieurs teste et recherche sans resultat souhaité, je viens demander votre aide.

    J'ai quatres tables (base mysql).

    Resultat souhaité :

    Table -projet- : Les informations sur les projets (clé pri. code_projet)
    Table -projet_tache- : les codes des projets et les codes des taches
    Table -tache- : les informatiosn sur les taches (clé pri. code_tache)
    Table -changer_etat- : les informations sur l'avancement des etats des projets (clé pri. code_etat,code_projet,date_etat).

    Table changer_etat:
    code_etat : 1 =>En cours
    code_etat : 2 =>Terminé

    j'aimerai recuperer les code_projet des projets terminés (code_etat=2) d'une tache donnée.

    c'est à dire, lorsque je veux affecté une tache à un projet, je vérifie tout d'abord si cette tâche existe deja dans la base, si oui, je verifie s'elle appartient à un projet qui n'est pas encore terminé, si oui je fais mes testes dans le programme (php).
    Ma requette est :

    $req_objet_deja_livre=mysql_query('SELECT code_projet FROM projet_tache WHERE code_tache IN (SELECT code_tache FROM tache where nom_tache="test1") and code_projet IN (SELECT code_projet FROM changer_etat WHERE max(code_etat)!="2" )')or die (mysql_error());

    Je veux avoir seulement les projets qui ont la tache 'test1' et qu'ils doivent pas être terminé.

    Merci pour votre aide.

  2. #2
    Membre chevronné
    Inscrit en
    Octobre 2008
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Octobre 2008
    Messages : 273
    Par défaut
    Bonjour,
    tu ne pas avoir de fonction d'agrégation (genre max() )dans une clause where.

    Il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... code_projet IN (SELECT code_projet FROM changer_etat WHERE group by code_projet having max(code_etat)!="2"
    @+

  3. #3
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Par défaut
    Salam,

    merci pour votre réponse,

    j'a procedé comme suit et ça marche (votre requette ça marche aussi, merci bcp)

    SELECT code_projet FROM projet_tache WHERE code_tache IN (SELECT code_tache FROM tache where nom_tache ="test1") and code_projet NOT IN (SELECT code_projet FROM changer_etat WHERE code_etat="2")

    comme ça j'aurai tous les projets non terminé (dans mon code, si un projet est terminé, c'est l'état final, il doit pas revenir en cours) donc seulement les projets dont l'etat est en cours = code_etat!=2.

    Merci BCP.

Discussions similaires

  1. Requête SQL avec max
    Par Guinoumi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 22/07/2010, 14h08
  2. Pb de requete SQL avec clauses WHERE dans une procédure stockée
    Par CocoLeNain dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/06/2010, 23h48
  3. [AC-2007] Requête DELETE * avec clause WHERE
    Par al_bert dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 13/05/2009, 17h03
  4. Requête sql avec where
    Par sondo dans le forum WinDev
    Réponses: 6
    Dernier message: 23/04/2008, 13h47
  5. requête sql avec clause INNER JOIN
    Par new_wave dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/08/2005, 15h47

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