Skip to content

Instantly share code, notes, and snippets.

@hdary85
Last active January 23, 2024 02:40
Show Gist options
  • Save hdary85/132c549ed73fbda66a1862d3b736231e to your computer and use it in GitHub Desktop.
Save hdary85/132c549ed73fbda66a1862d3b736231e to your computer and use it in GitHub Desktop.
%macro CalculTrimestre(dateDebutTrimestre);
/* Format the dateDebutTrimestre variable as a date */
%let dateDebutTrimestre = %sysfunc(inputn(&dateDebutTrimestre, date9.));
/* Étape 1: Filtrer les clients dont l'anniversaire est dans le trimestre fourni */
proc sql;
create table ClientsAnniversaire as
select *
from VotreTable
where month(DATE_DE_NAISSANCE_CLIENT) in (
month(&dateDebutTrimestre),
month(intnx('month', &dateDebutTrimestre, 1, 'b')),
month(intnx('month', &dateDebutTrimestre, 2, 'b'))
);
quit;
/* Étape 2: Calculer le total déposé sur les 12 mois précédant la date de début du trimestre fourni */
proc sql;
create table TotalDepose as
select ID_CLIENT,
sum(MONTANT) as TotalDepose
from VotreTable
where DATE_DEPOT >= intnx('month', &dateDebutTrimestre, -12, 's')
and DATE_DEPOT < &dateDebutTrimestre
group by ID_CLIENT;
quit;
/* Étape 3: Afficher les résultats */
proc print data=ClientsAnniversaire;
title "Clients dont l'anniversaire est dans le trimestre fourni";
run;
proc print data=TotalDepose;
title "Total déposé sur les 12 mois précédant la date de début du trimestre fourni";
run;
%mend;
/* Exemple d'utilisation de la macro avec une date de début de trimestre spécifique */
%CalculTrimestre('01JAN2024'd);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment