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 :

créer une requête résumé


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Juillet 2015
    Messages : 10
    Points : 10
    Points
    10
    Par défaut créer une requête résumé
    Bonjour,

    Je me permet de solliciter votre Aide, j'ai essayé plusieurs voies pour arriver à mes fins, mais sans succès pour l'instant.

    J'ai deux tables

    Accidents ( ID , date_accident, type_accident, Chantier)
    temps de travail ( ID, Date_, heures_internes, heures_externes, heures_soustraitant, heures_stagiaire)

    Sachant que la colonne "type_accident" ne peut prendre que les valeurs "<7 jours" ">7 jours" "sans arrets" "mortel"

    j'ai besoin d'une liste par mois de:
    -la somme totale d'heures travaillés
    -le nombre d'accident de type "<7 jours"
    -le nombre d'accident de type ">7 jours"
    -le nombre d'accident de type "sans arrets"
    -le nombre d'accident de type "mortel"


    J'ai réussi à bricoler quelque chose pour commencer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCTROW Accidents.Date_accident, Count(Accidents.type_accident) AS nbraccident, Sum([temps de travail].heures-internes) + Sum([temps de travail].heures-externes)+ Sum([temps de travail].heures-soustraitant)+ Sum([temps de travail].heures_stagiaire) AS [total heures]
    FROM (Chantier INNER JOIN [temps de travail] ON Chantier.[Nom_Chantier] = [temps de travail].[CHANTIER]) INNER JOIN Accidents ON Chantier.[Nom_Chantier] = Accidents.[Chantier_accident]
    WHERE Accidents.type_accident IN (">7 days")
    GROUP BY Accidents.Date_accident, Accidents.type_accident;
    Mais j'ai déjà plusieurs problèmes

    1) le nombre de ligne renvoyé n'est pas exhaustif ( il y a des mois entier qui ne sont pas renvoyés)
    2)Je ne Sais pas comment ajouter les autres colonnes parce que je ne peut faire qu'un WHERE
    3) J'ai essayer de faire plusieurs petites requêtes pour à la fin les joindre, mais la fonction JOIN ne fonctionne pas car on ne peut pas créer de relation entre deux requêtes (les requêtes n'ont pas de clefs primaires)


    Auriez vous quelques éléments de réponse pour me guider

    Merci d'avance

  2. #2
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Bonjour !

    En regardant bien ta requête, je constate en tout premier lieu que tu établis une relation sur un champ "String"...
    Je te conseille d'ajouter un champ Numérique, par exemple nommé "IdChantier", dans ta table "temps de travail" et de faire la liaison entre tes deux tables avec
    • pour la table Accidents: Id (Je te conseillle de le renommer IdAccident cf. ci-dessous)
    • pour l'autre table: IdChantier

    Cela te donnera des résultats plus stables.

    Concernant ta demande, je pense que des clauses "OR" devraient faire l'affaire.

    Conseils complémentaires (à appliquer selon ton bon vouloir):
    • Evites, tant que faire se peut, les noms avec des espaces pour tes tables (Exemple: Temps_de_travail ou TempsDeTravail ou encore mieux tblTempsDeTravail)
    • Précise le "Id" dans chaque table (cela te sera plus facile pour t'y repérer, cf. ci-dessus)


    Cordialement.
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Juillet 2015
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Merci bernardmichel,

    Les conseils des plus expérimentés sont toujours bon à prendre

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

Discussions similaires

  1. Créer une requête statistiques
    Par MARCO63 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 28/01/2008, 22h47
  2. [SNMP] Créer une Requête SNMP
    Par arnaudperfect dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/03/2007, 16h23
  3. Réponses: 31
    Dernier message: 24/08/2006, 12h13
  4. [ABAP] Comment créer une requête avec jointure
    Par roadster62 dans le forum SAP
    Réponses: 1
    Dernier message: 21/02/2006, 16h04
  5. [HTTP]Créer une requête http multipart/related
    Par jothi35 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 05/04/2005, 15h32

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