1 2 3 4 5
| PARAMETERS DateMini DateTime, DateMaxi DateTime;
SELECT T_PlagesLibres.fkChambre, Switch(IsNull([T_PlagesLibres].[Debut]),[DateMini],IsNull([DateMini]),[T_PlagesLibres].[Debut],[T_PlagesLibres].[Debut] Between Nz([DateMini],#1/1/1000#) And Nz([DateMaxi],#1/1/3000#),[T_PlagesLibres].[Debut],True,[DateMini]) AS debut, Switch(IsNull([T_PlagesLibres].[Fin]),[DateMaxi],IsNull([DateMaxi]),[T_PlagesLibres].[Fin]+1,[T_PlagesLibres].[Fin]>=Nz([DateMini],#1/1/1000#) And [T_PlagesLibres].[Fin]<Nz([DateMaxi],#1/1/3000#),[T_PlagesLibres].[Fin]+1,True,[DateMaxi]) AS fin
FROM T_PlagesLibres
WHERE (((Nz([debut],#1/1/1000#))<=Nz([DateMaxi],#1/1/3000#)) AND ((Nz([fin],#1/1/3000#))>=Nz([DateMini],#1/1/1000#)))
ORDER BY T_PlagesLibres.fkChambre, Switch(IsNull([T_PlagesLibres].[Debut]),[DateMini],IsNull([DateMini]),[T_PlagesLibres].[Debut],[T_PlagesLibres].[Debut] Between Nz([DateMini],#1/1/1000#) And Nz([DateMaxi],#1/1/3000#),[T_PlagesLibres].[Debut],True,[DateMini]), Switch(IsNull([T_PlagesLibres].[Fin]),[DateMaxi],IsNull([DateMaxi]),[T_PlagesLibres].[Fin]+1,[T_PlagesLibres].[Fin]>=Nz([DateMini],#1/1/1000#) And [T_PlagesLibres].[Fin]<Nz([DateMaxi],#1/1/3000#),[T_PlagesLibres].[Fin]+1,True,[DateMaxi]); |
Partager