Ok j'ai trouvé cette solution:
Code :
declare @moisencours int
declare @moissuivant int
set @moisencours = datepart(month,getdate())
IF @moisencours = 12
set @moissuivant = 1
ELSE
set @moissuivant = @moisencours + 1
select top 100 Prenom, Nom, DateNaissance
from tbl_usager
where (datepart(month,tbl_usager.datenaissance) = @moisencours OR datepart(month,tbl_usager.datenaissance) = (@moissuivant)) and datepart(day,tbl_usager.datenaissance) >= CASE
WHEN datepart(month,tbl_usager.datenaissance) = @moisencours
THEN datepart(day,getdate())
ELSE 1
END
order by
CASE
WHEN @moisencours = 12
THEN datepart(month,tbl_usager.datenaissance)
END DESC,
CASE
WHEN @moisencours != 12
THEN datepart(month,tbl_usager.datenaissance)
END,
datepart(day,tbl_usager.datenaissance)
avec Sql Management studio ca fonctionne bien mais dans ma requete SQL dans ma page .ASP , ça fonctionne pas.
Code :
sql="declare @moisencours int declare @moissuivant int set @moisencours = datepart(month,getdate()) IF @moisencours = 12 set @moissuivant = 1 ELSE set @moissuivant = @moisencours + 1 select top 100 Prenom, Nom, DateNaissance from tbl_usager where (datepart(month,tbl_usager.datenaissance) = @moisencours OR datepart(month,tbl_usager.datenaissance) = (@moissuivant)) and datepart(day,tbl_usager.datenaissance) >= CASE WHEN datepart(month,tbl_usager.datenaissance) = @moisencours THEN datepart(day,getdate()) ELSE 1 END order by CASE WHEN @moisencours = 12 THEN datepart(month,tbl_usager.datenaissance) END DESC, CASE WHEN @moisencours != 12 END,datepart(day,tbl_usager.datenaissance);"