Bonjour,
depuis des années j'utilise cette requête dans un DTS pour me charger des données dans un fichier chaque début du mois.Il charge ainsi les données du mois précédent:
le soucis c'est qu'au mois de janvier,il devrait me charger les données du mois de décembre de l'année précédente, mais il ne les trouve pas et c'est normal, car getdate() renvoit la date en cours.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT numero_cli, nom, prenom,date_encais,numero_cli_fact, date_rembours, num_fact,type_fact from Client inner join facture on Client.numero_cli=facture.numero_cli_fact where year(date_encais)=getdate() and month(date_encais)=month(getdate())-1
j'ai ainsi opté pour cette procédure T-SQL:
Code sql : 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 use madatabase; begin declare @year_sec date declare @month_sec month set @year_sec=year(gatdate()) set @month_sec=month(gatedate()) if @month_sec=1 set @month_sec=12 set @year_sec= @year_sec -1 begin SELECT numero_cli, nom, prenom,date_encais,numero_cli_fact, date_rembours, num_fact,type_fact from Client inner join facture on Client.numero_cli=facture.numero_cli_fact where year(date_encais)=@year_sec and month(date_encais)=@month_sec end else begin SELECT numero_cli, nom, prenom,date_encais,numero_cli_fact, date_rembours, num_fact,type_fact from Client inner join facture on Client.numero_cli=facture.numero_cli_fact where year(date_encais)=@year_sec and month(date_encais)=@month_sec end end
Pensez vous que cela est optimisé? des idées?
Partager