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 :

Requête pour série chronologique.


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 37
    Points : 24
    Points
    24
    Par défaut Requête pour série chronologique.
    Bonjour a tous.

    Tout d'abord je précise que cette requête permettrait d'alimenter un graphique réalisé avec ACCESS.

    Je gère une bibliothèque à l'aide de plusieurs table.
    Une d'entre elles concerne les emprunts,elle comporte un champ date_debut.
    Je parviens à écrire une requête me sortant le nombre d'emprunt par jour.
    Seulement il n'y a pas des emprunts tous les jours et je ne peux pas créer de graphique avec une échelle jour fiable.

    J'ai déjà pensé à une solution passant par la création d'une table contenant tous les jours mais ce n'est pas super pratique.

    Si vous avez des pistes n'hésitez pas !
    Merci.

  2. #2
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    c'est pourtant la meilleur solution !
    et très simple à mettre en oeuvre

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Voir à ce sujet l'article de SQLPro sur le temps, sa mesure et ses calculs.
    Je crois qu'il y a des scripts de création des tables de calendrier.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Ok merci à tous.
    D'aprés vos dire et l'article proposé par Cinephil je constate que la création d'une table supplémentaire est incontournable.
    Je vais la générer par le code(VB), je serai plus à l'aise.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Voila, j'ai tout bien fait comme il fallait ; un script en vb qui génére une table de dates continues, et une jointure externe comme dans l'article de SQLpro mais ce satané access ne veut pas en entendre parler.

    J'ai essayé de mettre left outer join à la place et ça marche, sans faire ce que je veux évidemment. Je comprends pas.

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT emp.Date_debut, count(emp.id_exemplaire)
    FROM (((SELECT  id_exemplaire  , Date_debut FROM    Log_emprunt UNION SELECT  id_exemplaire  , Date_debut FROM    emprunt )  AS emp
     
    INNER JOIN Exemplaires ON 
    Exemplaires.id_exemplaire=emp.id_exemplaire)
     
    RIGHT OUTER JOIN  dates_temps  ON  
    Dates_temps.Dates  = emp.Date_debut)
     
    GROUP BY emp.Date_debut
    ORDER BY emp.Date_debut;
    note : le message d'erreur est "expression join non supportée", alors que même dans l'aide de chez MS ils disent que c'est possible

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Essaie celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT d.Dates, COUNT(*) AS nb_emprunts
    FROM dates_temps AS d
    LEFT OUTER JOIN (
      SELECT id_exemplaire, Date_debut
      FROM Log_emprunt
      UNION
      SELECT id_exemplaire, Date_debut 
      FROM emprunt 
    ) AS e ON e.Date_debut = d.Dates
    GROUP BY d.Dates
    ORDER BY d.Dates
    Je ne sais pas comment elle sera acceptée par Access qui a parfois des comportements bizarres avec du SQL standard...

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 400
    Points
    28 400
    Par défaut
    Avec Access, face à une requête complexe, tu as parfois intérêt à créer des vues pour les sous-requêtes et effectuer ta requête sur ces vues. (C'est ce que je faisais à l'époque où j'utilisais Access. Ça a peut-être évolué depuis.)

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Merci Cinéphil ta requête marche !
    Mais finalement j'en viens à sérieusement remettre en cause ce qu'on nous apprend à l'IUT ; d'abord les jointures uniquement par la clause where, ensuite un SGBD ne respectant pas le standard SQL ...

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par mondaying Voir le message
    d'abord les jointures uniquement par la clause where,
    Ca c'est un truc qui m'énerve au plus haut point !
    C'est pourtant tellement plus facile à lire une requête avec la bonne syntaxe !

    ensuite un SGBD ne respectant pas le standard SQL ...
    Je ne suis pas sûr qu'il existe un SGBD respectant la norme SQL à 100%.

  10. #10
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    coté sql, je trouve access pas si mauvais que ça...
    on peut lui mettre sans risque de grosse requetes bourrées de jointures et de sous requetes
    du moins j'ai jamais eut de problème...

    (j'ai bien dit pour le sql )

  11. #11
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par juvamine Voir le message
    coté sql, je trouve access pas si mauvais que ça...
    on peut lui mettre sans risque de grosse requetes bourrées de jointures et de sous requetes
    du moins j'ai jamais eut de problème...

    (j'ai bien dit pour le sql )
    Euh... si tu construis les requêtes avec l'outil graphique, tu peux effectivement arriver à faire des choses assez complexes mais quand tu vas voir le texte de la requête générée par Access, ça fait peur !
    Des parenthèses partout, des jointures imbriquées d'une manière incompréhensible... c'est l'enfer à débugguer une requête Access !

    Et à l'inverse, si tu fais une requête complexe en SQL normalisé, il est fort possible que Access ne la comprenne pas, justement parce qu'elle n'est pas organisée comme lui l'aurait fait.

    A moins que les dernières versions d'Access se soient améliorées en ce domaine, ça fait longtemps que je n'y ai plus touché.

  12. #12
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    Ecoute, j'ai toujours fait mes requetes moi même...et vraiment...je n'ai pas trop a me plaindre (a part quelques exceptions a la noix a connaitre...comme dans tout sgbd)

  13. #13
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Ben tu as de la chance ou tes requêtes ne sont pas si complexes ou Petitmou a amélioré son logiciel depuis que je ne l'utilise plus parce que j'ai souvenir de discussions ici où je donnais une requête complexe en SQL standard acceptée sans problème sur MySQL et que le demandeur annonçait comme refusée par Access... et c'était seulement à ce moment là qu'il nous disait qu'il utilisait Access !

Discussions similaires

  1. Une requête pour un débutant...
    Par Viper7 dans le forum Access
    Réponses: 3
    Dernier message: 11/04/2006, 21h46
  2. requête pour ajouter données à colonne
    Par sarah67 dans le forum Access
    Réponses: 12
    Dernier message: 21/02/2006, 11h48
  3. Requête pour récupérer le nom des champs
    Par legillou dans le forum JDBC
    Réponses: 1
    Dernier message: 08/02/2006, 16h09
  4. Requête pour remplacer caractères dans une table
    Par elliott1961 dans le forum Installation
    Réponses: 5
    Dernier message: 16/01/2006, 01h47
  5. requête pour exclure les doublons.
    Par sam01 dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2005, 19h10

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