Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question SQL

4 réponses
Avatar
ROLLOT Pascal-Jean
Je souhaiterais faire une requête du style :

Select nom, date1,date2,date3, XXXXX
from table1
où xxxxx représenterait la date la plus récente entre date1, date2 et date3.
Comment faire? Merci de votre aide.

4 réponses

Avatar
Med Bouchenafa[MVP]
Commence par créer une fonction qui te ramène la plus petite de trois dates
Un exemple serait
CREATE FUNCTION dbo.DateMin( @date1 datetime, @date2 datetime, @date3
datetime)
RETURNS DATETIME
AS
BEGIN
DECLARE @dateMin datetime

if @date1 < @date2
SET @dateMin = @date1
else
SET @dateMin = @date2
if @dateMin > @date3
SET @dateMin = @date3

return @dateMin

END

Ensuite, la requête est evidente

SELECT date1,date2,date3, DateMiniÛo.DateMin(date1,date2,date3)
FROM tblTest


--
Salutations
Med Bouchenafa
TETRASET
75015 Paris
"ROLLOT Pascal-Jean" wrote in message
news:
Je souhaiterais faire une requête du style :

Select nom, date1,date2,date3, XXXXX
from table1
où xxxxx représenterait la date la plus récente entre date1, date2 et


date3.
Comment faire? Merci de votre aide.




Avatar
ROLLOT Pascal-Jean
Merci mais le problème est que je ne peux pas créer de fonction(je travaille
depuis un "requêteur" qui ne m'en donne pas la possibilité) aussi je me
demandais s'il en existait une mais visiblement non.

Merci quand même.
Med Bouchenafa[MVP] a écrit dans le message :

Commence par créer une fonction qui te ramène la plus petite de trois


dates
Un exemple serait
CREATE FUNCTION dbo.DateMin( @date1 datetime, @date2 datetime, @date3
datetime)
RETURNS DATETIME
AS
BEGIN
DECLARE @dateMin datetime

if @date1 < @date2
SET @dateMin = @date1
else
SET @dateMin = @date2
if @dateMin > @date3
SET @dateMin = @date3

return @dateMin

END

Ensuite, la requête est evidente

SELECT date1,date2,date3, DateMiniÛo.DateMin(date1,date2,date3)
FROM tblTest


--
Salutations
Med Bouchenafa
TETRASET
75015 Paris
"ROLLOT Pascal-Jean" wrote in message
news:
> Je souhaiterais faire une requête du style :
>
> Select nom, date1,date2,date3, XXXXX
> from table1
> où xxxxx représenterait la date la plus récente entre date1, date2 et
date3.
> Comment faire? Merci de votre aide.
>
>




Avatar
Fred BROUARD
Select nom, date1, date2, date3,
CASE
WHEN date > date3
THEN date
ELSE date3
END as date
FROM (Select nom, date1, date2, date3,
CASE
WHEN date1 > date2
THEN date1
ELSE date2
END as date
from table1) T

A +

--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************

ROLLOT Pascal-Jean a écrit:
Je souhaiterais faire une requête du style :

Select nom, date1,date2,date3, XXXXX
from table1
où xxxxx représenterait la date la plus récente entre date1, date2 et date3.
Comment faire? Merci de votre aide.




Avatar
ROLLOT Pascal-Jean
Merci et bon week-end
Fred BROUARD a écrit dans le message :
#
Select nom, date1, date2, date3,
CASE
WHEN date > date3
THEN date
ELSE date3
END as date
FROM (Select nom, date1, date2, date3,
CASE
WHEN date1 > date2
THEN date1
ELSE date2
END as date
from table1) T

A +

--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************

ROLLOT Pascal-Jean a écrit:
> Je souhaiterais faire une requête du style :
>
> Select nom, date1,date2,date3, XXXXX
> from table1
> où xxxxx représenterait la date la plus récente entre date1, date2 et


date3.
> Comment faire? Merci de votre aide.
>
>