OVH Cloud OVH Cloud

Fonction impossible

1 réponse
Avatar
Jean-Luc M.
Bonjour

J'essaye de faire une fonction avec la requète suivante pour récupérer
la valeur de Tarif

SELECT @Prix = Tarifs.Tarif, Tarifs.CreeLe
FROM Tarifs,
(SELECT CreeLe
FROM Tarifs
WHERE Produit = @PRODUIT) DateRecente
GROUP BY Tarifs.Tarif, Tarifs.CreeLe
HAVING Tarifs.CreeLe = MAX(DateRecente.CreeLe)

Lors de la demande de validation, je reçois une erreur qui me dit que
je ne peux utiliser SELECT pour assigner une valeur si je fais une
extraction de données (erreur 141).

Comment pourrais-je transformer ce code pour que ça passe sans problème
?

J-L

--
J-L M. (Alphomega)
ICQ: 149635116
Pour m'écrire, cliquer le lien ci-dessous
http://cerbermail.com/?G5iYdBb2Ce

1 réponse

Avatar
Michel PRIORI
Bonjour,

3 ecritures possibles pour les fonctions : scalaire , table en 1 ligne ou
table en +sieurs lignes
voir la doc

Dans un select soit tu renvoi le select soit tu rempli une variable

Pour finir, ceci me parait plus élégant et performant :
SELECT Tarifs.Tarif
FROM Tarifs
where tarifs.tarif = (SELECT MAX(CreeLe) FROM Tarifs
WHERE Produit = @PRODUIT)
cordialement

"Jean-Luc M." a écrit :

Bonjour

J'essaye de faire une fonction avec la requète suivante pour récupérer
la valeur de Tarif

SELECT @Prix = Tarifs.Tarif, Tarifs.CreeLe
FROM Tarifs,
(SELECT CreeLe
FROM Tarifs
WHERE Produit = @PRODUIT) DateRecente
GROUP BY Tarifs.Tarif, Tarifs.CreeLe
HAVING Tarifs.CreeLe = MAX(DateRecente.CreeLe)

Lors de la demande de validation, je reçois une erreur qui me dit que
je ne peux utiliser SELECT pour assigner une valeur si je fais une
extraction de données (erreur 141).

Comment pourrais-je transformer ce code pour que ça passe sans problème
?

J-L

--
J-L M. (Alphomega)
ICQ: 149635116
Pour m'écrire, cliquer le lien ci-dessous
http://cerbermail.com/?G5iYdBb2Ce