Bonjour !
Je me retrouve avec une requête qui prend 14 seconde à mouliner car ya une petite incohérence dans la base.
J'ai 2 tables qui gères des prix qui "bouge" tout le temps comme il suit :
Fourniss_prix et service_prix
Pour avoir les prix d'un fournisseur la requête serait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Select date_fourniss_prix, service_prix.pa_service from fourniss_prix inner join service_prix on fourniss_prix.idfourniss_prix=service_prix.idfourniss_prix where fourniss_prix.code_fourniss="toto"
Jusque là rien de bien méchant.
Maintenant j'ai 2 autres table fourniss_prix_contrat et service_prix_contrat
don les prix eux sont fixés en début d'année.
Et qui ont exactement la même structure et nombre d'enregistrement que les 2 précédente, ou seul les prix sont différents.
Le principe c'est que les 2 premières tables on des prix qui sont modifiés tout au long de l'année, les 2 autre ont des prix fixé au début de l'année et ne bouge plus.
Mais il n'y a pas de lien logique entre c'est table dite "jumelles"
Les clefs primaires de fourniss_prix et de service_prix ne correspondent pas au clefs primaires de fourniss_prix_contrat et de service_prix contrat.
Le but et d'avoir les prix "dynamique" qui sont inférieur au prix "fixé" en début d'année.
Les seuls donnée correspondante entre les 2 sont les date, le code fournisseur.
Voici la requête qui me sort les résultat non sans mal...
Je vois pas comment je peux améliorer les temps de réponse du-coup...
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 select fourniss_prix.cdfourniss_fourniss_prix, fourniss_prix_contrat.date_fourniss_prix as "DATE", service_prix_contrat.pa_service_prix as "PRIX AVANT BAISSE", service_prix.pa_service_prix as "PRIX APRES BAISSE" from fourniss_prix inner join service_prix on service_prix.idfourniss_prix=fourniss_prix.idfourniss_prix inner join fourniss_prix_contrat on fourniss_prix_contrat.date_fourniss_prix=fourniss_prix.date_fourniss_prix and fourniss_prix.cdfourniss_fourniss_prix=fourniss_prix_contrat.cdfourniss_fourniss_prix inner join service_prix_contrat on fourniss_prix_contrat.idfourniss_prix=service_prix_contrat.idfourniss_prix where fourniss_prix.date_fourniss_prix >"20100520" and fourniss_prix.date_fourniss_prix<"20100620" and service_prix.pa_service_prix<service_prix_contrat.pa_service_prix and service_prix.cdclient is null and fourniss_prix.cdexcursio is null and service_prix_contrat.pa_service_prix<>0 and service_prix.pa_service_prix<>0 group by fourniss_prix.date_fourniss_prix, fourniss_prix_contrat.date_fourniss_prix order by fourniss_prix.date_fourniss_prix
Si vous avez une petite idée
Merci !
Partager