bonjour j'ai quelques requêtes à optimiser.
1 2
|
Rupture = case when bat.id_dep = bat.id_arr then 0 else 1 end |
il faut éviter le case-when dans l'optimisation.
Rupture = bat.id_arr (bat.id_dep,0)
est-ce ma syntaxe est correcte ?
1 2
| AND s.Dh_Arr <= @DateDebut
AND s.dh_dep > @DateFin |
dans l'optimisation, on évite les <> et on utilise plutôt between. du coup, j'ai ceci:
1 2
| AND s.Dh_Arr between '0001-01-01 00:00:00.000' and @DateDebut
AND s.dh_dep between @DateFin and '9999-12-30 00:00:00.000' |
je ne suis pas sure de ma syntaxe sachant que j'ai un '>' pour ma date. comment dois-je m'y prendre ? faut-il que j'utilise dateadd(time,1) sachant que mon datedebut et datefin sont des datetime ?
et enfin, je voudrais éviter mon 'left join' qui n'est pas recommandé en optimisation. j'ai ceci :
1 2 3 4 5 6 7 8
|
SELECT...
FROM ...
LEFT JOIN bat as bt with (nolock) on s.id_sg = bt.id_se1
WHERE sg.id_rv = @Id_srv
AND sg.id_im = @Id_sim1
AND sg.id_ct = 0
AND sg.dh_ep > @DateFin |
normalement, il faut utiliser une sous-requête mais je ne sais pas comment m'y prendre.
merci d'avance
Partager