gulie22 a écrit :Personne ne peut me venir en aide alors ...
Si, par exemple en te suggèrant cette saine lecture
http://user.services.openoffice.org/fr/ ... 2620#p2620
Egalement en t'indiquant que si tu avais dès le début envoyé ta base je n'aurais pas dû travailler sur mon exemple qui, par définition, ne correspondait pas à ton besoin.
Sinon, comme indiqué précédemment :
Pierre-Yves Samyn a écrit :utiliser une table (requête / instruction SQL)
Au lieu de mettre les données "en dur" dans une table, il suffit de génerer ces dernières par des requêtes SQL du type :
Capture-1.png
Code : Tout sélectionner
SELECT 'Production' AS "Légende", "%Production", "Nom" FROM ( SELECT "Batiment"."Nom", "Batiment"."Client", "Note Production" * 100 / "MaximumP" AS "%Production", "Note Transport" * 100 / "MaximumT" AS "%Transport", "Note Distribution" * 100 / "MaximumD" AS "%Distribution", "Note Installation" * 100 / "MaximumI" AS "%Installation", "Note Risque" * 100 / "MaximumR" AS "%Risque" FROM "Batiment", "Client", ( SELECT "Batiment"."Nom", "Batiment"."Client", "Batiment"."Niveaux" * 1 + "Batiment"."TypeProd" * 1 + "Batiment"."SurveillanceParamTemp" * 3 + "Batiment"."TempSurveillee" * 1 + "Batiment"."TempProd60" * 3 + "Batiment"."VanneDepurage" * 2 + "Batiment"."NettoyageProd" * 1 + "Batiment"."Ballon" * 2 AS "Note Production", 29 AS "MaximumP", "Batiment"."NatureReseau" * 2 + "Batiment"."TypeReseau" * 1 + "Batiment"."Longueur" * 2 + "Batiment"."TempReseau55" * 2 + "Batiment"."BrasMorts" * 3 + "Batiment"."TEauChaude60" * 1 + "Batiment"."EauFroideCanaux" * 1 + "Batiment"."DiffTempBoucle5" * 2 + "Batiment"."DebitObserve" * 1 + "Batiment"."DebitMesure" * 1 + "Batiment"."Entartrage" * 1 + "Batiment"."Corrosion" * 1 + "Batiment"."FuiteReseau" * 1 + "Batiment"."ManqueDebit" * 1 + "Batiment"."Canalisation" * 2 AS "Note Transport", 40 AS "MaximumT", "Batiment"."EtatPuisage" * 3 + "Batiment"."PuisageRisque" * 2 + "Batiment"."PuisageNonUtilise" * 3 + "Batiment"."TempPuisage50" * 2 + "Batiment"."MitigeagePuisage" * 2 + "Batiment"."SurveillanceParamTempPuisage" * 2 AS "Note Distribution", 28 AS "MaximumD", "Batiment"."CarnetSanitaire" * 1 + "Batiment"."SuiviAnalytique" * 3 + "Batiment"."Resulat3Annees" * 3 + "Batiment"."ResulatDerniereAnnee" * 3 + "Batiment"."PHDurete" * 1 + "Batiment"."VerifOrganesManoeuvre" * 2 + "Batiment"."TraitementEau" * 1 AS "Note Installation", 27 AS "MaximumI", "Batiment"."TraitementPreventif" * 1 + "Batiment"."FormationPersonnel" * 1 + "Batiment"."Manchette" * 1 + "Batiment"."TraitementsChocs" * 1 + "Batiment"."PatientRisque" * 1 + "Batiment"."SurveillanceConsoEau" * 1 + "Batiment"."NettoyageOrganesTerminaux" * 2 + "Batiment"."ChasseRegulière" * 3 AS "Note Risque", 16 AS "MaximumR" FROM "Batiment", "Client" WHERE "Batiment"."Client" = "Client"."Nom" ) AS "NotesFonctions" WHERE "Batiment"."Client" = "Client"."Nom" AND "Batiment"."Nom" = "NotesFonctions"."Nom" ) AS "%Fonctions"
Capture-2.png
Code : Tout sélectionner
SELECT 'Non Production' AS "Légende", 100 - "%Production" AS "%Production", "Nom" FROM ( SELECT "Batiment"."Nom", "Batiment"."Client", "Note Production" * 100 / "MaximumP" AS "%Production", "Note Transport" * 100 / "MaximumT" AS "%Transport", "Note Distribution" * 100 / "MaximumD" AS "%Distribution", "Note Installation" * 100 / "MaximumI" AS "%Installation", "Note Risque" * 100 / "MaximumR" AS "%Risque" FROM "Batiment", "Client", ( SELECT "Batiment"."Nom", "Batiment"."Client", "Batiment"."Niveaux" * 1 + "Batiment"."TypeProd" * 1 + "Batiment"."SurveillanceParamTemp" * 3 + "Batiment"."TempSurveillee" * 1 + "Batiment"."TempProd60" * 3 + "Batiment"."VanneDepurage" * 2 + "Batiment"."NettoyageProd" * 1 + "Batiment"."Ballon" * 2 AS "Note Production", 29 AS "MaximumP", "Batiment"."NatureReseau" * 2 + "Batiment"."TypeReseau" * 1 + "Batiment"."Longueur" * 2 + "Batiment"."TempReseau55" * 2 + "Batiment"."BrasMorts" * 3 + "Batiment"."TEauChaude60" * 1 + "Batiment"."EauFroideCanaux" * 1 + "Batiment"."DiffTempBoucle5" * 2 + "Batiment"."DebitObserve" * 1 + "Batiment"."DebitMesure" * 1 + "Batiment"."Entartrage" * 1 + "Batiment"."Corrosion" * 1 + "Batiment"."FuiteReseau" * 1 + "Batiment"."ManqueDebit" * 1 + "Batiment"."Canalisation" * 2 AS "Note Transport", 40 AS "MaximumT", "Batiment"."EtatPuisage" * 3 + "Batiment"."PuisageRisque" * 2 + "Batiment"."PuisageNonUtilise" * 3 + "Batiment"."TempPuisage50" * 2 + "Batiment"."MitigeagePuisage" * 2 + "Batiment"."SurveillanceParamTempPuisage" * 2 AS "Note Distribution", 28 AS "MaximumD", "Batiment"."CarnetSanitaire" * 1 + "Batiment"."SuiviAnalytique" * 3 + "Batiment"."Resulat3Annees" * 3 + "Batiment"."ResulatDerniereAnnee" * 3 + "Batiment"."PHDurete" * 1 + "Batiment"."VerifOrganesManoeuvre" * 2 + "Batiment"."TraitementEau" * 1 AS "Note Installation", 27 AS "MaximumI", "Batiment"."TraitementPreventif" * 1 + "Batiment"."FormationPersonnel" * 1 + "Batiment"."Manchette" * 1 + "Batiment"."TraitementsChocs" * 1 + "Batiment"."PatientRisque" * 1 + "Batiment"."SurveillanceConsoEau" * 1 + "Batiment"."NettoyageOrganesTerminaux" * 2 + "Batiment"."ChasseRegulière" * 3 AS "Note Risque", 16 AS "MaximumR" FROM "Batiment", "Client" WHERE "Batiment"."Client" = "Client"."Nom" ) AS "NotesFonctions" WHERE "Batiment"."Client" = "Client"."Nom" AND "Batiment"."Nom" = "NotesFonctions"."Nom" ) AS "%Fonctions"
et de réunir les deux par :
Code : Tout sélectionner
SELECT "Légende", "%Production", "Nom" FROM "Pys1"
UNION
SELECT "Légende", "%Production", "Nom" FROM "Pys2"
L'union réclame des vues, raison pour laquelle ce sont des vues et non des requêtes qui sont utilisées
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.