Bonjour tous le monde
Voilà ma requête SQL j'ai essayé de la rectifier mais elle me sort toujours des redondances dans le résultat
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
SELECT     GEcheance.Code_Affaire, Taffaire.IntituleAffaire, GEcheance.NumEcheance, GEcheance.DateEcheance, GEcheance.MontantEcheance, GEcheance.Facture, 
                      GEcheance.DateFact, GEcheance.NumFact, GEcheance.Regle, GEcheance.DateRegl, GEcheance.MontantRegl, GEcheance.ObsEcheance, Taffaire.code_agence, 
                      Taffaire.dent_dem, Taffaire.DateEtablConv, Taffaire.dapprob_conv, Taffaire.descript_projet, Taffaire.MaitreOuvrage, Taffaire.Typeouvrage, Taffaire.TypeSousouvrage, 
                      Taffaire.TypeCocontractant, Taffaire.Cocontractant, Taffaire.statut_aff, Taffaire.statut_ouv, Taffaire.chargedaffaire, Taffaire.MntTrvSoumis, Taffaire.RefRapport, 
                      Taffaire.ClotureREP, Taffaire.ClotureFicheOuvProjet, Taffaire.DateCreationAffaire, Taffaire.DateDerniereModifAffaire, Taffaire.UserCreationAffaire, 
                      Taffaire.UserDerniereModifAffaire, Taffaire.Multisite, Taffaire.SaisieIngenieur, Taffaire.DatePriseChargerAffActuel, Taffaire.MarcheN, Taffaire.ValidRensAffaireDir, 
                      Taffaire.DelaiContrat, Taffaire.PeriodeGrace, Taffaire.MontantContrat, Taffaire.ExistCaution, Taffaire.MontantCaution, Taffaire.MotifLiberCaution, 
                      Taffaire.SiReceptCaution, Taffaire.DateReceptCaution, Busers_1.GroupSec, Busers_1.GroupSousSec, Bagences.nom_ag, 
                      GChangementEtatConvention.EtatConvention, GChangementEtatConvention.DateFinEtat, MaxGAvancementChantier.MaxTauxAvancementChantier, 
                      MaxGAvancementPlan.MaxTauxAvancementPlan, GChangementEtatProjet.EtatProjet, Busers.Matricule AS MatIngControleur, 
                      Busers.Nom + ' ' + Busers.Prénom AS IngControleur, TSites.CodeWilaya, Bmaitre_ouvrage.nom AS NomMaitreouvrage, Bmaitre_ouvrage.Abrevation, 
                      Bmaitre_ouvrage.FamilleMouvrage, TEntreRealSite.codeEntreprise, TmaitreOeuvreSite.codeMaitreOeuvre, TBetSite.codeBET, Taffaire.AnneeCvt
FROM         (SELECT     Code_Affaire, Code_site, MAX(EtatProjet) AS EtatProjet, DateFinEtat
                        FROM         GChangementEtatProjet AS GChangementEtatProjet_1
                        WHERE     (DateFinEtat IS NULL)
                        GROUP BY Code_Affaire, Code_site, DateFinEtat) AS GChangementEtatProjet RIGHT OUTER JOIN
                      (SELECT     Code_Affaire, Code_Site, MAX(codeBET) AS codeBet
                             FROM         TBetSite
                              WHERE     (codeBET LIKE '%CB00138%')
                             GROUP BY Code_Affaire, Code_Site) AS TBetSite RIGHT OUTER JOIN
                      TSites ON TBetSite.Code_Affaire = TSites.Code_Affaire AND TBetSite.Code_Site = TSites.Code_Site LEFT OUTER JOIN
                      (SELECT     Code_Affaire, Code_Site, MAX(codeMaitreOeuvre) AS codeMaitreOeuvre
                             FROM         TmaitreOeuvreSite
                             WHERE     (codeMaitreOeuvre LIKE '%CA00138%')
                             GROUP BY Code_Affaire, Code_Site) AS TmaitreOeuvreSite ON TSites.Code_Affaire = TmaitreOeuvreSite.Code_Affaire AND TSites.Code_Site = TmaitreOeuvreSite.Code_Site LEFT OUTER JOIN
                     (SELECT     Code_Affaire, Code_Site, MAX(codeEntreprise) AS codeEntreprise
                             FROM         TEntreRealSite
                             WHERE     (codeEntreprise LIKE '%CE00138%')
                             GROUP BY Code_Affaire, Code_Site) AS TEntreRealSite ON TSites.Code_Affaire = TEntreRealSite.Code_Affaire AND TSites.Code_Site = TEntreRealSite.Code_Site LEFT OUTER JOIN
                          (SELECT     Code_Affaire, MAX(MatriculeSal) AS MatriculeSal, Code_Site
                             FROM         TuserSite AS TuserSite_1
                             WHERE     (ControleTrvExe = 1) AND (EtatSal = 'Actif')
                             GROUP BY Code_Affaire, Code_Site) AS TuserSite INNER JOIN
                      Busers ON TuserSite.Code_Site = Busers.Matricule ON TSites.Code_Affaire = TuserSite.Code_Affaire AND TSites.Code_Site = TuserSite.Code_Site ON 
                      GChangementEtatProjet.Code_Affaire = TSites.Code_Affaire AND GChangementEtatProjet.Code_site = TSites.Code_Site LEFT OUTER JOIN
                          (SELECT     Code_Affaire, MAX(TauxAvancementPlan) AS MaxTauxAvancementPlan, Code_site
                             FROM         GAvancementPlan
                             GROUP BY Code_Affaire, Code_site) AS MaxGAvancementPlan ON TSites.Code_Affaire = MaxGAvancementPlan.Code_Affaire AND 
                      TSites.Code_Site = MaxGAvancementPlan.Code_site LEFT OUTER JOIN
                          (SELECT     Code_Affaire, MAX(TauxAvancementChantier) AS MaxTauxAvancementChantier, COUNT(Num) AS NbrVisiteApres310512, Code_site, 
                                                   Date AS datevisite
                             FROM         GVisiteChantier
                             GROUP BY Code_Affaire, Code_site, Date) AS MaxGAvancementChantier ON TSites.Code_Affaire = MaxGAvancementChantier.Code_Affaire AND 
                      TSites.Code_Site = MaxGAvancementChantier.Code_site RIGHT OUTER JOIN
                      Bmaitre_ouvrage INNER JOIN
                      GEcheance INNER JOIN
                      Taffaire ON GEcheance.Code_Affaire = Taffaire.Code_Affaire ON Bmaitre_ouvrage.code = Taffaire.MaitreOuvrage ON 
                      TSites.Code_Affaire = Taffaire.Code_Affaire LEFT OUTER JOIN
                          (SELECT     Code_Affaire, EtatConvention, DateFinEtat
                             FROM         GChangementEtatConvention AS GChangementEtatConvention_1
                             WHERE     (DateFinEtat IS NULL)
                             GROUP BY Code_Affaire, EtatConvention, DateFinEtat) AS GChangementEtatConvention ON 
                      Taffaire.Code_Affaire = GChangementEtatConvention.Code_Affaire LEFT OUTER JOIN
                          (SELECT     Code_Affaire, EtatOperation, DateFinEtatOperation
                             FROM         GChangementEtatOperation AS GChangementEtatOperation_1
                             WHERE     (DateFinEtatOperation IS NULL)
                             GROUP BY Code_Affaire, EtatOperation, DateFinEtatOperation) AS GChangementEtatOperation ON 
                      Taffaire.Code_Affaire = GChangementEtatOperation.Code_Affaire LEFT OUTER JOIN
                      Bagences ON Taffaire.code_agence = Bagences.code_ag LEFT OUTER JOIN
                      Busers AS Busers_1 ON Taffaire.chargedaffaire = Busers_1.Matricule

Merci pour votre aide