Bonjour,
je dispose de deux vues crées avec les requêtes suivantes
Vue InterPlanning
Vue TelephoneActive
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 drop view InterPlanning; go CREATE VIEW InterPlanning AS SELECT planning.IdIntervention, planning.IdSalarie, sal.Nom as NomSalarie, sal.Prenom as PrenomSalarie, planning.IdPA, personne.Nom, personne.Prenom, personne.Adressel, personne.Adressel2, personne.CodePostall, personne.Villel, personne.Telephonel1, planning.CodeActivite, activite.Libelle, planning.DateDebutReelle, planning.HeureDebutReelle, planning.DateFinReelle, planning.HeureFinReelle, planning.DateDebut, planning.DateFin, planning.HeureDebut, planning.HeureFin, planning.DateAnnuler, planning.CodeAsso, planning.DateSuppr from Salarie sal, PL_Activite activite,PL_Planning planning left outer join PA personne on personne.CodeEmployeur = planning.IdPA and personne.CodeAssociation = planning.CodeAsso where planning.DateAnnuler='1901-01-01 00:00:00.000' and planning.DateSuppr='1901-01-01 00:00:00.000' and planning.IdSalarie = sal.CodeCandidat and planning.CodeAsso=sal.CodeAssociation and planning.CodeActivite = activite.CodeActivite go
pour récupérer les intervention faites par une personne j'exécute cette requête
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 drop view TelephoneActive; go CREATE VIEW TelephoneActive AS SELECT tel.IMEI, tel.ID_TG_Telephone, telAut.dateDebut, telAut.dateFin, telAut.codeSalarie, telAut.codeAssociation FROM eliad.dbo.TG_Telephone tel,TG_TelephoneAutorisation telAut where telAut.dateDebut <= GETDATE() and telAut.dateFin>=GETDATE() and telAut.ID_TG_Telephone=tel.ID_TG_Telephone; go
elle s'exécute quasiment instantanément , mais le problème c'est que j'aimerais bien filtrer également sur la DateDébutRéelle en utilisant les champs DateDébut et DateFin dans la vue TelephoneActive
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Select * from InterPlanning where IdSalarie=(select codeSalarie from TelephoneActive where IMEI='354956052024481') and DATEPART(m, DateDebutReelle) = DATEPART(m, getdate()) and DATEPART(yy, DateDebutReelle) = DATEPART(yy,getdate());
Peut on récupérer plusieurs variables dans ma requête imbriquée ? si non y a t il un autre moyen de faire
car j'ai fait une autre requête en mettant les deux vues dans le from mais j'ai peur que ça mette trop de temps à s'exécuter car ce n'est plus instantané avec cette autre requête
s'il n'y a pas d'autre moyens , dois je utiliser une procédure stockée ou une fonction pour retourner mes valeurs ? devrais utiliser des curseurs dans cette fonction pour renvoyer mes valeurs ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Select * from InterPlanning planning,TelephoneActive tel where DATEPART(m, DateDebutReelle) = DATEPART(m, getdate()) and DATEPART(yy, DateDebutReelle) = DATEPART(yy,getdate()) and planning.DateDebutReelle>=tel.dateDebut and planning.DateDebutReelle<=tel.dateFin and planning.IdSalarie=tel.codeSalarie and tel.IMEI='354956052024481';
merci par avance pou vos réponses et si je n'ai pas été assez clair, n'hésitez pas à me demander plus de détails
Partager