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 :

req sql compliqué


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 124
    Points : 62
    Points
    62
    Par défaut req sql compliqué
    j ai 3 tables:
    pays(idpays,nompays,frequence)
    test(idtest,datetest,idpays)


    pays
    1 france 1
    2 anglettre 1
    3 belgique 2

    test
    1 1/12/2008 1
    2 1/12/2008 2
    3 2/12/2008 2
    4 2/12/2008 3


    le champ frequence represente le type de test à faire cad
    si 1 par jours
    si 2 par mois
    si 3 par annee


    je dois afficher pour chaque pays si le test a eu lieu ou non pendant une periode de temps


    par exemple le resultat doit etre (entre:1/12/2008 et 3/12/2008)

    france 1/12/2008 tester
    anglettre 1/12/2008 tester
    france 2/12/2008 Nontester
    anglettre 2/12/2008 tester
    france 3/12/2008 Nontester
    anglettre 3/12/2008 Nontester
    belgique 12/2008 tester

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    est ce que tu t'appuies sur un langage de programmation ou bien tu dois réaliser tout ca en sql pure ?

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 124
    Points : 62
    Points
    62
    Par défaut
    de preferable en sql pure sinon je peux utiliser c#

  4. #4
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Quel SGBD ?

    Dans ton résultat, dans le cas "testé" (tester si tu préfères), la date renvoyée est celle du dernier test ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT nompays, COALESCE(max(datetest), to_date('03122008', 'ddmmyyyy'), CASE max(datetest) WHEN NULL THEN 'NonTesté' ELSE 'Testé' END
    FROM Pays a LEFT OUTER JOIN test b
      ON a.idpays = b.idpays
     AND datetest BETWEEN to_date('01122008', 'ddmmyyyy') AND to_date('03122008', 'ddmmyyyy')
    GROUP BY nompays
    Explications
    => Jointure externe entre pays et test pour avoir également les pays pour lesquels il n'y a pas de test dans la période
    => GROUP BY et max(datetest), parce que même s'il y a plusieurs tests, tu ne veux récupérer qu'une ligne.
    => COALESCE renvoie la première valeur non NULL de la liste d'arguments. Car si un pays n'a pas été testé, max(datetest) sera NULL. Dans ce cas, tu renvoies la date que tu veux.
    => Attention, j'ai pris to_date pour les dates, faut choisir la bonne fonction correspondant à ton SGBD... (tiens d'ailleurs, il y doit y avoir une norme...)

    Voilà, j'espère que ça correspond vaguement à ce que tu cherches.

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 124
    Points : 62
    Points
    62
    Par défaut
    ça ne résoud pas le pb
    juste il m'affiche les tests executés et ignore les dates ou il n'ya eu pas de test

Discussions similaires

  1. requête sql compliquée
    Par caoutchouc dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/05/2007, 16h21
  2. Requete SQL compliquée
    Par tanglung dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/04/2007, 13h55
  3. Priorité de classement ds req. SQL
    Par jayan dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 03/11/2006, 12h13
  4. comment intérroger les Primary key par req SQL ?
    Par nanou9999 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/03/2006, 10h22
  5. requette sql compliqué sous delphi
    Par developpeur_mehdi dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2004, 16h33

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