Bonjour,

J'ai eu beau chercher dans les forums ou sur internet, je n'ai pas trouvé la bonne réponse à mon problème, mais comme je suis débutant en SQL, j'ai dû passer à côté de quelque chose.
Je suis en firebird 3.x.

Par une procédure stockée (qui marche maintenant!), j'ai créé des enregistrements dans une table "floraison".
Afin de vérifier que tous les enregistrements de la table "planting" avaient bien été traités par la procédure, j'ai fait la requête suivante:

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select p.n_lot,sum(p.surface) s_plt,sum(p.nb_pied) nbp_plt,sum(f.surface) s_fl,sum(f.nb_pied) nbp_fl from planting p
       join floraison f on f.n_lot = p.n_lot
       group by p.n_lot;

Les résultats obtenus sont:

Nom : resltat_req_joint.JPG
Affichages : 288
Taille : 21,5 Ko

Or, ces résultats sont faux.
Si je fais des requêtes individuelles sur chaque tables, j'obtiens les bons résultats.

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
select n_lot,sum(surface) s_plt,sum(nb_pied) nbp_plt   from planting group by n_lot ;

Nom : resltat_req_planting.JPG
Affichages : 285
Taille : 17,5 Ko

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
select n_lot,sum(surface) sur_fl,sum(nb_pied) pied_fl   from floraison group by n_lot ;

Nom : resltat_req_flor.JPG
Affichages : 279
Taille : 16,1 Ko

Dans les requêtes simples, on obtient bien les mêmes surfaces et mêmes nombre de pieds pour les lots traités, mais dans la requêtes avec jointure, les surfaces et nombre de pieds sont beaucoup plus élevés.

Une aide serait la bienvenue pour m'expliquer la bonne jointure à faire. Je pense que la somme se fait à chaque fois qu'il y a un enregistrement pour la jointure, mais je ne sais pas comment résoudre ce problème.

Merci d'avance.