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 :

Perte données nulle suite ajout condition Where


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Controleur de gestion
    Inscrit en
    Août 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Controleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Perte données nulle suite ajout condition Where
    Bonjour,

    Tout nouveau pratiquent du SQL via la conception de requête simple de gestion d'affaire via un éditeur de requête, je me retrouve devant la difficulté suivante :
    Mon but est de ressortir des pointages de temps sur des affaires et des phases liées à ces affaires. Pour cela je souhaite avoir une ligne par phase même pour celle ou aucun pointage n'est effectué.
    Jusque là pas de soucis via la requête suivante :
    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
     
    SELECT Concat(affaire.Code, " - ", affaire.Objet) AS Affaire,
      phase.Objet,
      phaseprestation.Libelle,
      Sum(pointageaffairetemps.Quantite),
      phaseavancementsubjectif.DateAvancement,
      phaseavancementsubjectif.Valeur,
      phase.PTVente,
      phase.TempsPrevu
    FROM pointageaffairetemps
      RIGHT JOIN phase ON pointageaffairetemps.Phase_idPhase = phase.idPhase
      INNER JOIN affaire ON affaire.idAffaire = phase.Affaire_idAffaire
      INNER JOIN phaseprestation ON phase.PhasePrestation_idPhasePrestation =
        phaseprestation.idPhasePrestation
      LEFT JOIN utilisateur ON pointageaffairetemps.Utilisateur_idUtilisateur =
        utilisateur.idUtilisateur
      INNER JOIN phaseavancementsubjectif
        ON phase.idPhase = phaseavancementsubjectif.Phase_idPhase
    Mon problème est que lorsque je veux ajouter ma condition de date en y ajoutant un WHERE, toute mes lignes exemptent de pointage ne ressortent plus!

    Que faire?

    Merci par avance de vos conseils.

  2. #2
    Candidat au Club
    Homme Profil pro
    Controleur de gestion
    Inscrit en
    Août 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Controleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Petite précision,

    Je viens de refaire le test en gardant mon WHERE et en enlevant mon SUM, les pointages avec quantité 0 s'affiche correctement.
    Le problème ne vient donc pas du WHERE seulement mais de la concaténation du WHERE et du SUM.

  3. #3
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 146
    Points : 7 388
    Points
    7 388
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where (madate = <valeur> or madate is null)
    On ne jouit bien que de ce qu’on partage.

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Le problème vient surtout du fait que vous utilisez une fonction d’agrégation (SUM) mais pas de GROUP BY.
    MySQL fait donc comme il l'entend, et visiblement, il ne l'entend pas comme vous.

    Ajoutez la clause GROUP BY avec toutes les colonnes non incluses dans des fonctions d’agrégat

  5. #5
    Candidat au Club
    Homme Profil pro
    Controleur de gestion
    Inscrit en
    Août 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Controleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour votre aide à tous les 2. je m'en suis sorti en fusionnant vos 2 réponses. Il va falloir que je m'attèle à m'exercer sur des requêtes simple via les exercices du site.

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

Discussions similaires

  1. Pertes Données Bd si ajout seconde Bd
    Par decoster420 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 30/04/2015, 13h19
  2. Réponses: 3
    Dernier message: 05/12/2010, 13h27
  3. Problème pour poster les données dans la base suite à ajout d'un champ
    Par What dans le forum Connexion aux bases de données
    Réponses: 12
    Dernier message: 22/01/2010, 00h12
  4. perte de données suite à ajout dans repeater
    Par remitbo dans le forum ASP.NET
    Réponses: 2
    Dernier message: 27/04/2009, 20h09
  5. Problème SQL suite ajout clause Where
    Par Tipstitou dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 04/03/2009, 06h05

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