if begin end dans une requete sql
Bonjour
J'ai une requête sql qui parfois ne donne aucun resultat car pas d'objet trié dans une période donnée.
je souhaite insérer une condition qui m'affiche un commentaire lorsque la requête ne donne aucun resultat. Mais malgré mes tentatives, je n'y arrive pas :(
Voici ma requête sql.
Pour résumé, je voudrais que lorsque le count(P.id) est <0 alors ma requete affiche "Pas objet trouvé".
Dans le cas contraire, elle affiche les resultats.
dans ma requete ci dessous, que le count(P.id) soit < ou > 0 , j'ai toujours le commentaire "Pas objet trouvé" qui s'affiche :ptdr:
Merci de votre aide
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 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 64 65 66
| DECLARE @EVENT_TYPE_SORTING Int = 2 -- Tri
DECLARE @EVENT_TYPE_REJECT Int = 34 -- Rejet
DECLARE @StartDateTime DateTime = '20200131 20:30'
DECLARE @EndDateTime DateTime = '20200131 23:30'
DECLARE @gate int = '61'
DECLARE @Type Int=0
DECLARE @count int
IF 0<@count
BEGIN
select
CONVERT(varchar,@StartDateTime,103) +' '+CONVERT(varchar,@StartDateTime,108) as Date_Debut,
CONVERT(varchar,@EndDateTime,103) +' '+CONVERT(varchar,@EndDateTime,108) as Date_Fin,
D.DescRegateCode as Destination ,
DEB.num as Sortie,
DEF.gate as gate,
Count(P.id) as '@count'
from Debordement deb
inner join OPB_Server.DefinitionOPB.dbo.[ZoneSorterExitDef] AS DEF
on DEF.DestinationNUm=DEB.VirtualChuteNum
LEFT JOIN [Parcel] P
ON P.[PhysicalChuteNum]=Deb.[Num] AND P.[SystemNum]=0
INNER JOIN [ParcelEvent] PE
ON P.[Id]=PE.[ParcelId] AND
PE.[EventTypeNum] IN (@EVENT_TYPE_SORTING,@EVENT_TYPE_REJECT) AND
PE.[DateTime] BETWEEN @StartDateTime AND @EndDateTime
inner join Chute C
on C.Num=DEB.Num
inner join ChutePhysicalType CPT
on CPT.Type=C.ChutePhysicalType and CPT.Type= @type
inner JOIN Vacation as V
on V.id = P.VacationId
inner join Tache as T
ON V.IdTache=T.Id and T.id=DEB.IdTache
inner JOIN dsc as D
on D.chute=C.num and D.Idtache=V.idtache
where DEF.gate=@gate
GROUP BY
D.DescRegateCode,
DEB.num,
DEF.gate
END
ELSE
BEGIN
select 'Pas objet trouvé.'
END |