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 :

Jointure, perte systèmatique 1ere valeur...


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 23
    Points : 18
    Points
    18
    Par défaut Jointure, perte systèmatique 1ere valeur...
    Je fais une requête de ce type, pour récupérer les valeurs qui se suivent :
    Code:

    SELECT gat.Dates, gat.[val1], gat_2.dates
    FROM
    [Heures Gat] AS gat LEFT JOIN [Heures Gat] AS gat_2 ON
    dateAdd("h", 1, gat.Dates) = gat_2.dates) ;



    Je pers systèmatiquement la première valeur :
    Par exemple si j'ai les heures 1, 2, 3, 4
    Je vais obtenir
    1, null
    2, 3
    3, 4
    4, null

    Alors que je devrais obtenir
    1, 2

    Il y a quelque chose qui m'échappe...

    Quelqu'un a une idée ?

  2. #2
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    Peux tu nous donner tes dates complètes en entree ta requête et le resultat obtenu.

    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Merci pour ton aide.

    Date en entrée :
    10/01/2002 13:00:00
    11/01/2002 04:00:00
    11/01/2002 05:00:00
    11/01/2002 06:00:00
    11/01/2002 07:00:00
    11/01/2002 08:00:00
    11/01/2002 09:00:00
    12/01/2002 07:00:00

    Résultat obtenu:
    10/01/2002 13:00:00 NULL
    11/01/2002 04:00:00 NULL
    11/01/2002 05:00:00 11/01/2002 06:00:00
    11/01/2002 06:00:00 11/01/2002 07:00:00
    11/01/2002 07:00:00 NULL
    11/01/2002 08:00:00 11/01/2002 09:00:00
    11/01/2002 09:00:00 NULL
    12/01/2002 07:00:00 NULL

    Résultat souhaité:
    10/01/2002 13:00:00 NULL
    11/01/2002 04:00:00 11/01/2002 05:00:00
    11/01/2002 05:00:00 11/01/2002 06:00:00
    11/01/2002 06:00:00 11/01/2002 07:00:00
    11/01/2002 07:00:00 11/01/2002 08:00:00
    11/01/2002 08:00:00 11/01/2002 09:00:00
    11/01/2002 09:00:00 NULL
    12/01/2002 07:00:00 NULL

    Le résultat obtenu est un peu bizarre, ai-je fais une erreur dans ma requête ?

  4. #4
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    Quelle SGBDR utilises tu?

    ta requête à l'air correcte, pour une confirmation peux tu lancer cette requete et verifier que le resultat est cohérent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT gat.Dates, dateAdd("h", 1, gat.Dates) 
    FROM 
    [Heures Gat] AS gat
    A+

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    J'ai effectivement déjà lancé cette requête pour vérifier.

    Voilà le résultat de la requête que tu m'as demandé :

    10/01/2002 13:00:00 10/01/2002 14:00:00
    11/01/2002 04:00:00 11/01/2002 05:00:00
    11/01/2002 05:00:00 11/01/2002 06:00:00
    11/01/2002 06:00:00 11/01/2002 07:00:00
    11/01/2002 07:00:00 11/01/2002 08:00:00
    11/01/2002 08:00:00 11/01/2002 09:00:00
    11/01/2002 09:00:00 11/01/2002 10:00:00
    12/01/2002 07:00:00 12/01/2002 08:00:00

    Je me disais que la requête est tellement que quelque chose doit m'échapper.

    Pour la BDD, c'est là que le bas blesse

    C'est Access 2002, je crois que je vais installer une autre BDD, parce qu'entre les résultats bizarres, les temps de calcul énormes, et les plantages intempestifs, je commence à en avoir marre d'Access.

    En tout cas, merci pour ton aide MAMMAR.

  6. #6
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    Ne me demande pas pourquoi , mais ceci devrait fonctionner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT gat.Dates, gat.[val1], gat_2.dates 
    FROM 
    [Heures Gat] AS gat LEFT JOIN [Heures Gat] AS gat_2 ON 
    Cstr(dateAdd("h", 1, gat.Dates) )= Cstr(gat_2.dates) ;
    A+

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Super, merci, ça fonctionne!

    Alors, en gros, avec access, si on souhaite faire des jointures sur des dates, il est préférable de les convertir en chaîne de caractère. C'est du propre

    Je crois que je vais passer à une autre BDD.

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

Discussions similaires

  1. Perte de la valeur dans Page.User.Identity.Name
    Par Nosper dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/01/2007, 13h24
  2. Réponses: 1
    Dernier message: 08/11/2006, 14h32
  3. Perte de la valeur du champ qd on tabule dessus
    Par pekka77 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/09/2006, 08h30
  4. [Oracle 8] Jointure externe multiple et valeurs nulles !!!
    Par nsonnier dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/03/2006, 22h22
  5. [CR8.5] Afficher 1ere valeur du champ sur chaque entête
    Par marvel dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 11/07/2005, 08h31

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