carolet
Messages postés26Date d'inscriptionmercredi 9 avril 2003StatutMembreDernière intervention26 septembre 2013
-
25 mai 2009 à 14:46
carolet
Messages postés26Date d'inscriptionmercredi 9 avril 2003StatutMembreDernière intervention26 septembre 2013
-
26 mai 2009 à 10:27
Bonjour,
Sur une carte de france, je veux afficher une infobulle par département dans laquelle s'affiche le CA de l'année.
J'y arrive mais le problème avec ma méthode est que je dois faire une requête pour chaque département. C'est un peu lourd ;)
Comment faire pour avoir une seule requete qui reconnaitrais la valeur du numéro de départment.
Merci d'avance
<% total1 "SELECT sum(res1), sum(res2) FROM (SELECT sum(c.ca) AS res1, count(distinct(b.codetiers)) AS res2 FROM APISOFT_DOS_DELAHOUSSE_SA.GEST_VUE_STATBASE_FC c, APISOFT_DOS_DELAHOUSSE_SA.ENTETEFACTURE B, APISOFT_DOS_DELAHOUSSE_SA.article e where e.code c.codearticle and b.codedocutil = c.codedocutil and extract(year from c.datedoc)="&curyear&" and b.pays='FR' and b.cp like '62%')"%>
<%Set total1 = oCon.execute(total1)%>
<%resultat = "Pas de Calais - 62" &"
<% total2 "SELECT sum(res1), sum(res2) FROM (SELECT sum(c.ca) AS res1, count(distinct(b.codetiers)) AS res2 FROM APISOFT_DOS_DELAHOUSSE_SA.GEST_VUE_STATBASE_FC c, APISOFT_DOS_DELAHOUSSE_SA.ENTETEFACTURE B, APISOFT_DOS_DELAHOUSSE_SA.article e where e.code c.codearticle and b.codedocutil = c.codedocutil and extract(year from c.datedoc)="&curyear&" and b.pays='FR' and b.cp like '80%')"%>
<%Set total2 = oCon.execute(total2)%>
<%resultat2 = "- 80" &"
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 25 mai 2009 à 20:05
Salut
SELECT sum(res1), sum(res2) FROM (SELECT sum(c.ca) AS res1, count(distinct(b.codetiers)) AS res2 FROM APISOFT_DOS_DELAHOUSSE_SA.GEST_VUE_STATBASE_FC c, APISOFT_DOS_DELAHOUSSE_SA.ENTETEFACTURE B, APISOFT_DOS_DELAHOUSSE_SA.article e where e.code c.codearticle and b.codedocutil c.codedocutil and extract(year from c.datedoc)="&curyear&" and b.pays='FR' group by left(b.cp,2))
En esperent que les départements de 1 à 9 sont codés sous le forme 01 à 09
sinon il faut que tu geres autrement
Le mieux est de rajouter dans une vue ou dans ta table une colonne département
pour optimiser encore plus le calcul.
Car un SGBD n'est pas fait pour gérer trop des chaines de textes(mais plus pour manipuler des ensembles), autant il prémaché le travail.
De plus, tu peux utiliser les dictionnaires dans asp3, pour optimiser la construction de ta page.
set dico = server.createObject("Scripting.Dictionary")
carolet
Messages postés26Date d'inscriptionmercredi 9 avril 2003StatutMembreDernière intervention26 septembre 2013 26 mai 2009 à 10:27
Merci de ta réponse.
Pour le code ASP, je vois ce que tu veux dire, par contre ce que je n'arrive pas à faire c'est : en passant la souris sur le département, ça passe le numéro du département dans la fonction "afficher_bulle" et ça renvoie l'info pour que la requête ASP aille cherche les données correspondantes au numéro du département. Je sais pas si je suis claire ;)
Voila le code de la fonction "afficher_bulle" :
//Définition de variables en fonction du navigateur
var ie = (document.all)? true:false;
var ns4 = (document.layers)? true:false;
var ns6 = (document.getElementById)? true:false;
//Incrustation du div "bulle" (display: none = non affiché)
//Vous pouvez librement modifier le style de bordure de la bulle
if ((ns6) || (ie)) {
document.write('
//Fonction qui fait disparaître la bulle
function masquer_bulle() {
document.onmousemove = null;
bulleStyle.display = 'none';
}
//Fonctions qui augmente le z-index (indice de profondeur) de la bulle
function up_zindex_bulle() {
bulleStyle.zIndex = 200;
}
//Réinitialise le z-index
function raz_zindex_bulle() {
bulleStyle.zIndex = '';
}