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 :

problèmes requêtes entre deux tables [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut problèmes requêtes entre deux tables
    Bonjour,

    j'ai un petit problème avec une de mes requête que j'avais réussit à contourner il y a deux trois ans mais là je bloque (ça fait fort longtemps que je n'ai plus touché au sql).

    Mon problème :

    J'ai deux tables de pays avec le recensement de quelques indicateurs sociologiques. Chacune des tables correspond à un intervalle de temps
    1999_2002 et 2003_2006.

    Dans ces tables, j'ai toujours les mêmes champs :

    time_spawn (donc 1999_2002 ou 2003_2006)
    Code_pays
    nom_pays
    indicateurs 1
    indicateurs 2

    Je voudrais faire une requête qui sorte :

    Les valeurs des indicateurs pour 2003_2006, mais s'ils n'existent pas (codé par NA) les valeurs de 1999_2003 et si on ne les a pas pour les 2 intervalles que le pays n'apparaisse pas.

    Bien entendu certains pays ont été ajoutés sur le deuxième intervalle de temps et donc n'existe pas dans la première table.
    J'ai tenté des iif imbriqué mais ça n'a pas l'air de marcher
    Je pense que ça ne doit pas être bien compliqué, mais je n'y arrive plus.

    Merci d'avance.

  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 639
    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 639
    Points : 34 361
    Points
    34 361
    Par défaut
    salut,
    je peux te proposer une requête avec UNION, plus simple à gérer que les IIF

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    En effet, c'est une fonction que je n'ai jamais utilisée, je vais aller voir comment elle marche, je notifie si j'y arrive (ou pas )

    Merci beaucoup.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    bonjour,
    J'ai essayé dans la matinée la requête union, mais je n'ai pas réussit à faire ce que je voulais. Ca doit être du au fait que je ne maitrise pas ces requêtes.

    Si quelqu'un pouvait m'expliquer rapidement ce que je devrait faire avant que je me lance dans un tuto de plusieur pages, je lui serait très reconnaissant.

    Merci à tous.

  5. #5
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Bonjour,

    Ca peut être plus ou moins compliqué...
    Y a-t-il une table qui a tous les pays ?
    Combien d'indicateurs par ligne ? S'il en manque 1 est-ce qu'ils manquent tous ?
    Combien de lignes par pays et par table ? Si 1 seule ceci doit marcher mais n'exclut pas les lignes vides :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select distinct pays,
    iif(isnull(select i1 from t1 where x.pays=t1.pays),(select i1 from t2 where x.pays=t2.pays),(select i1 from t1 where x.pays=t1.pays))
    ...
    from (select pays from t1 union select pays from t2) x

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Ca marche
    Merci, il fallait bien coupler un union et un iif ....

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

Discussions similaires

  1. Problème requête INSERT entre deux tables
    Par IPreferCSharp dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 13/11/2013, 09h45
  2. [WD11] Problème liaison entre deux tables
    Par juliendu01 dans le forum WinDev
    Réponses: 20
    Dernier message: 31/01/2012, 12h12
  3. requête entre deux tables
    Par ryodo dans le forum Langage SQL
    Réponses: 5
    Dernier message: 01/10/2010, 21h21
  4. Requête entre deux table
    Par ryodo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/09/2010, 17h36
  5. Réponses: 1
    Dernier message: 11/06/2009, 23h39

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