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

Requêtes et SQL. Discussion :

somme de requete


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 16
    Points
    16
    Par défaut somme de requete
    Bonjour

    Je ne sais pas si le titre reflete bien mon probleme.

    j'ai fait une base avec une table personne (nom, prenom, appartement)
    et une table echange (id_nom, id_nom1, id_nom2)

    Cela me permet de gerer des echanges d'appartement. Par défaut j'ai deux personnes qui echange leur appartement, et exeptionnellement je peux avoir des echanges à trois.

    j'ai donc fait une requette pour avoir les noms des personnes qui echange.
    Ma requette est constitué de ma table echange et de deux tables personne.
    Cela me permet de voir les échanges à deux.
    Mais si je rajoute une troisieme fois ma table personne, je ne vois plus que les echange à trois. J'ai essaye de jouer sur le type de jointure de la troisieme table, mais cela ne fonctionne pas

    Pour le moment j'ai fait deux requettes pour avoir tous les resultats, mais cela m'oblige à gerer deux listes.

    Est ce qu'il est possible de faire cela avec une seul requette ?

    Merci pour votre aide
    Images attachées Images attachées  

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 356
    Points
    34 356
    Par défaut
    Salut,

    peut-on partir du principe qu'en cas d'échange à trois les 3 champs sont renseignés et qu'en cas d'échange à 2, le champ 3 est à Null ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    oui le troisième champ est null quand il y a un echange à deux

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 356
    Points
    34 356
    Par défaut
    Deux possibilités arrivent en priorité :
    - requete avec jointure left join au lieu de inner join sur ton champ 3
    - requete UNION

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Merci pour la réponse, en faite j'avais deja essaye avec le left join, mais le probleme venait que j'ai une table appartement lié à la table personne dans ma requete.

    Donc comme dans ta réponse tu m'a dit que cela devait marcher, j'ai fait des tests.
    En faite quand j'enleve la table appartement cela fonctionne avec le left. J'ai donc rajouter ma table appartement que j'ai lié aussi avec un left join et tout fonctionne. Quand je n'avais pas le left sur la table appartement, j'avais un message d'erreur du type " The SQL statement could not be executed because it contains ambigous outer joins"

    En tout cas merci pour ta réponse.

    Cordialement
    Frédéric

  6. #6
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Fmagh et Jpcheck,

    Je me permets de m'immiscer, Jpcheck...

    Ne faudrait-il pas revoir la conception ?

    Suggestion (souligné=clé primaire numéro auto, #=clé étrangère) :
    Personne(IdPersonne, Nom, ...) ;
    Appartement(IdAppartement, #IdPersonne, ...) ;
    ==> 1 appartement est lié à une personne.
    Echange(#IdAppartement, DateEchange, #IdPersonne, ...).
    ==> 1 appartement, à une date donnée, fait l'objet d'un échange concernant plusieurs personnes.
    Fmagh, je te laisse établir les relations qui sont relativement évidentes.

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

Discussions similaires

  1. [AC-2010] somme sur requete
    Par salluste dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 12/06/2014, 16h01
  2. somme de requetes
    Par tchaw dans le forum Requêtes
    Réponses: 2
    Dernier message: 23/03/2010, 13h43
  3. Somme de requete avec valeur NULL
    Par maxeur dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 12/04/2007, 10h19
  4. Requete Selection Somme
    Par Le_Phasme dans le forum Langage SQL
    Réponses: 6
    Dernier message: 06/01/2005, 12h36
  5. Somme dans une requete
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/08/2004, 10h40

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