Bonjour,

Je me permets de poster ce message, car après de nombreuses recherches je ne parviens pas à adapter une requête fonctionnant sous oracle a sqlserver 2005.

Je bloque sur le remplacement des least et greatest, voici un bout de requête posant problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
select matric,sum(HNUIT) from
    (select matric,sum(least(hfinpl,3000)-greatest(hdebpl,2300)) as HNUIT
Je suis parvenu à "remplacer" la fonction least avec cette fonction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
CREATE FUNCTION Minimum
    (@Param1 Integer, @Param2 Integer)
    Returns Table As
    Return(Select Case When @Param1 < @Param2 
                       Then @Param1 Else @Param2 End MinValue)
Utilisation => Select MinValue as PaidforPast From dbo.Minimum(@PaidThisMonth, @OwedPast)

Le problème étant que je ne parviens pas à utiliser ma fonction dans le FROM comme je le souhaiterais, voici où j'en suis :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
select matric,MinValue as HNUIT, 
    from plres, dbo.Minimum((select min(hfinpl) from plres),(2900));
j'aimerais plutôt passer sur quelque chose du genre

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
select matric,MinValue as HNUIT 
    from plres as p1, dbo.Minimum((select hfinpl from plres where p1.matric=matric and p1.dat=dat),(2900));
Hors je ne parviens pas à faire fonctionner ceci avec l'alias, avez-vous une idée sur la manière de contourner le problème ?

Merci par avance et bonne journée.