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 :

Besoin d'aide SQL


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Besoin d'aide SQL
    J'ai 2 table (décrite en dessus) et je veux obtenir avec une requete SQL pour
    le 2008-07-15 le nb. heure travaillé par les 2 machine et la superficie traité cette journée la ... donc je veux obtenir une seule ligne ...

    Table 1

    ID POLYGONE DATE_TRAIT SUPERFICIE
    1 2008-07-15 1.2
    2 2008-07-15 2.3
    3 2008-07-15 2.2

    Table 2

    NO_MACHINE DATE NB_HRS
    M1 2008-07-15 2.3
    M2 2008-07-15 5.4


    RÉSULTAT DESIRÉ

    DATE_TRAIT SUPERFICIE NB_HRS
    2008-07-15 5.7 7.7

    Je n'ai jamais fais ça en un seul SQL ... merci pour votre aide ...

    JM

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir,

    On va essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    SELECT 
             T1.DATE
            , T1.SOMMESUPERFICIE
            , T2.SOMMEHEURES
    FROM
           (
            SELECT
                     Table1.DATE_TRAIT AS DateT1
                   , SUM(SUPERFICIE) AS SOMMESUPERFICIE
            FROM
                   Table1
           ) T1,
                 (
                  SELECT
                          Table1.DATE_TRAIT AS DateT2
                         , SUM(NB_HRS) AS SOMMEHEURES
                  FROM 
                         Table1
                  ) T2
     
    WHERE T1.DateT1 = T2.DateT2
    ;
    Enfin... Dans le genre
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Sinon en fait plus simple (),

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT
             Table1.DATE_TRAIT
            , SUM(SUPERFICIE)
            , SUM(NB_HRS)
     
    FROM
           Table1 JOIN Table2
                     ON ...  /* Je pense à PK et FK */
     
    GROUP BY
             Table1.DATE_TRAIT
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Le résultat donne 23.1 et non 7,7 heure
    Avec la deuxième requête , le résultat de la somme des heures fait le 2008-07-15 donne 23.1 et en réalité les 2 machines n'ont fait que 7.7 heures et on réalisé une superficie de 5.7 ..

    Comment faire pour que mes sommes de se triple pas .....

    Merci

    JM

  5. #5
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Mmm,

    Biens dormis ?

    Cela me parait bizar...
    1/ Quel est ton SGBD ?
    2/ Aurais-tu la description de tes tables ?
    3/ Peux-tu mettre la requête que tu as écrite ?

    Merci...
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  6. #6
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    D'aprés le shéma que tu donnes il n'y a pas de jointure possible entre les 2 tables, tu fais donc 1 produit cartésien.
    Comment faire pour que mes sommes de se triple pas .....
    Soit tu ajoutes la machine qui a traité la surface dans dans ta table Superficie, soit tu fais un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT date_traitement,
    	( SELECT SUM(superficie)
    	FROM	Superficie
    	WHERE 	date_traitement = S.date_traitement ) AS superficie,
    	( SELECT SUM(nb_hrs)
    	FROM	Machine
    	WHERE 	date_machine = S.date_traitement ) AS nb_hrs
    FROM	Surface S
    GROUP BY date_traitement

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Parfait ..
    Merci beaucoup c'est ce que je cherchais ...

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

Discussions similaires

  1. besoin d'aide sql
    Par carolina88 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/11/2012, 09h19
  2. besoin d'aide sql
    Par gentelmand dans le forum SQL
    Réponses: 13
    Dernier message: 16/03/2010, 14h31
  3. j'ai besoin d'aide [SQL SERVR]
    Par am.adnane dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/01/2006, 14h24
  4. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56
  5. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 19h59

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