Bonjour,
Voila, je suis apprenti en informatique.
Je travaille sur une application vb.net avec une base de données MS SQL SERVER, la base de donnée s'appelle courrier.
L'application recense tous les courriers recus et envoyes...
En fait j'affiche les courriers recu ou envoyes d'apres une recherche.
J'utilise une procedure stockée qui prend en parametre les donnes selectionnées, cette procedure stockee traite les infos presentes et construit la requete correspondante a la recherche:
procedure de selection courrier envoyé
En fait, ma recherche prend en compte les utilisateurs suivants :
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 Declare @requete varchar(3000) Declare @select varchar(1000) Set @select ='SELECT mail.Chrono as Chrono, mail.DateEmission as DateEmission, mail.Objet as Objet, mail.Classement as Classement, mail.Référence as Référence, MAX(inter.Nom) AS Expéditeur, MIN(inter2.Nom) AS Destinataire, inter3.Nom AS Rédacteur, mail.Type AS Type, mail.CodeCourrier AS CodeCourrier,mail.Année As Annee ' print @select SET @strSQL ='FROM dbo.Intervenant inter3 LEFT OUTER JOIN dbo.AssociationCourrierIntervenant j3 ON inter3.CodeIntervenant = j3.CodeIntervenant RIGHT OUTER JOIN dbo.Intervenant inter LEFT OUTER JOIN dbo.AssociationCourrierIntervenant j ON inter.CodeIntervenant = j.CodeIntervenant RIGHT OUTER JOIN dbo.Courrier mail ON j.CodeCourrier = mail.CodeCourrier AND j.Nature LIKE ''Expéditeur'' LEFT OUTER JOIN dbo.AssociationCourrierIntervenant j2 ON j2.CodeCourrier = mail.CodeCourrier AND j2.Nature Like ''Destinataire'' AND j2.CodeIntervenant <> j.CodeIntervenant LEFT OUTER JOIN dbo.Intervenant inter2 ON j2.CodeIntervenant = inter2.CodeIntervenant ON j3.CodeCourrier = mail.CodeCourrier AND j3.Nature LIKE ''Rédacteur'' ' --print @strSQL Set @requete = @Select +', '''+@NomSession+''' '+@strSQL Set @Groupby='GROUP BY mail.Objet, inter3.Nom, mail.CodeCourrier,mail.Année, mail.Chrono, mail.Type, mail.CodeService, mail.Référence, mail.Classement, mail.DateEmission, mail.Référence,mail.DateRéception ' SET @Having='HAVING (mail.Année = '+@annee+') AND (mail.CodeService ='+ @CodeService+') AND (mail.Type = 1) ' SET @Orderby ='ORDER BY mail.Chrono' Set @strSQL = @select + @strSQL print @strSQL SET @Condition ='WHERE ' If @CodeIntervenant !=0 begin --print @Nature if @Nature = 'Expéditeur' Set @inter='inter.CodeIntervenant='+@CodeIntervenant+' ' if @Nature= 'Destinataire' Set @inter='inter2.CodeIntervenant='+@CodeIntervenant+' ' if @Nature= 'Copie' Set @inter='inter3.CodeIntervenant='+@CodeIntervenant+' ' if @Nature ='' Set @Inter ='inter.CodeIntervenant='+@CodeIntervenant+' OR inter2.CodeIntervenant='+@CodeIntervenant+' OR inter3.CodeIntervenant='+@CodeIntervenant+' ' SEt @strSQL = (@strSQL +@Condition+@Inter) SEt @requete = (@requete +@Condition+@Inter) --print (@strSQL) end If @Objet <>'' begin SET @Having = (@Having +'AND mail.Objet LIKE ''%' +@Objet+'%'' ') end If @Ref <>'' begin SET @Having = (@Having +'AND mail.Référence='''+@Ref+''' ') end If @Class <>'' begin SET @Having = (@Having +'AND mail.Classement='''+@Class+''' ') end If @Chrono <>'' begin SET @Having = (@Having +'AND mail.Chrono='''+@Chrono+''' ') end If @Datedeb <>'' begin SET @Having = (@Having +'AND mail.DateRéception BETWEEN '''+@Datedeb+''' AND '''+@Datefin+''' ') end --print @having SELECT @strSQL = @strSQL + @Groupby+ @Having --+ @Orderby SELECT @requete = @requete + @Groupby+ @Having --+ @Orderby print @requete exec (@strSQL)
-expediteur
-destinataire
-en copie
Mais il me faut aussi la possibilité de choisir :
-le redacteur
- fax
J'ai un peu les memes soucis pour les courriers recus...
Partager