Bonjour,
J'ai une grosse requete impliquant une dizaine de table ( la 1ere possedant 3 cles etrangere, et la requete veut recuperer des champs de ces 3 tables) et des trucs dans le genre.
Actuellement, je me pose la question de rapidite de traitement.
Existe-t-il un moyen plus rapide que 10 requetes imbriques ? Comme par exemple l'utilisation de fonction pour chaque table ?
Merci d'avance
Julien
EDIT :
Voici la query
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 SELECT wojcsitecattyfrmn.*, lh.HONO,lh.HOURS,lh.RATE FROM ( SELECT wojcsitecatty.*,frmn.JC_FOREMANDESC FROM ( SELECT wojcsitecat.*,ty.JTY_DESC FROM ( SELECT wojcsite.*,cat.JC_CATEGORYDESC FROM ( SELECT wojc.*,site.DEST_LIB FROM ( SELECT wo.*, jc.JC_CATEGORYCODE,jc.JC_DATECREATE,jc.JC_FOREMANCODE,jc.JC_JOBDESC, jc.JC_JOBTYPE,jc.JC_JOBSEQNO FROM ( SELECT A.WO_WORKORDERNO, A.WO_SITECODE,A.WO_FROMSITECODE, A.WO_ASSETCODE,B.PL_DESC, A.WO_DATECREATE, A.WO_DATESTART, A.WO_DATEEND, A.WO_DATECLOSE,B.PL_BRAND FROM WorkShop.PLTWKORD as A with (nolock) Left Outer Join WorkShop.PLTPLANT as B with (nolock) On B.PL_CODE = A.WO_ASSETCODE WHERE A.WO_DATECREATE >= Convert(DateTime,'01/01/2009') AND A.WO_DATECREATE <= Convert(DateTime,'01/01/2010') ) as wo -- WorkOrder + Asset Left Outer Join WorkShop.PLTJOBCD as jc on jc.JC_WORKORDERNO = wo.WO_WORKORDERNO ) as wojc -- WorkOrder + Asset + JobCard Left Outer Join Account.Fddst as site on wojc.WO_SITECODE = site.DEST_COD ) as wojcsite -- WorkOrder + Asset + JobCard + Site Left Outer Join WorkShop.PLTJOBCAT as cat on wojcsite.JC_CATEGORYCODE = cat.JC_CATEGORYCODE ) as wojcsitecat -- WorkOrder + Asset + JobCard + Site + Category Left Outer Join WorkShop.PLTJOBTY as ty on wojcsitecat.JC_JOBTYPE = ty.JTY_JOBTYPE ) as wojcsitecatty -- WorkOrder + Asset + JobCard + Site + Category + Type Left Outer Join WorkShop.PLTFORMN as frmn on wojcsitecatty.JC_FOREMANCODE = frmn.JC_FOREMANCODE ) as wojcsitecattyfrmn -- WorkOrder + Asset + JobCard + Site + Category + Type + Foreman Left Outer Join WorkShop.PLTJOBHR as lh on wojcsitecattyfrmn.JC_JOBSEQNO = lh.JC_JOBSEQNO AND wojcsitecattyfrmn.WO_WORKORDERNO = lh.JC_WORKORDERNO
Partager