PB avec deux Requêtes SQL
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:
Code:
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 |
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.
j'ai ainsi opté pour cette procédure T-SQL:
Code:
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?