Bonjour tout le monde,
Mon collègue vient de me poser une belle colle... Savez-vous s'il est possible d'utiliser la commande "TOP" dans une fonction scalaire SQL Server?
Si non, connaîtriez-vous une façon pour contourner l'utilisation de TOP?
Pour info voici la fonction qui pose problème. Elle renvoie le dernier prix pratiqué pour l'article et le client passé en paramètre.
La fonction si dessus ne fonctionne donc pas je pense à cause du TOP(1) mais je ne sais pas comment faire pour ne pas l'utiliser ou simplement contourner le problème et faire d'une autre manière.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 ALTER FUNCTION [dbo].[fct_get_prix_unitaire] ( @CLI_COD AS VARCHAR(7), @ART_COD AS VARCHAR(16) ) RETURNS FLOAT AS BEGIN -- Declare the return variable here DECLARE @PRIX_UNIT AS FLOAT -- Add the T-SQL statements to compute the return value here SELECT @PRIX_UNIT = TOP (1) rq_gpao_facture_clients_pos.fdp_pvu_d FROM rq_gpao_facture_clients_pos LEFT OUTER JOIN rq_gpao_factures_clients ON rq_gpao_facture_clients_pos.fdb_num = rq_gpao_factures_clients.fdb_num WHERE (rq_gpao_factures_clients.fdb_fdbndc <> 'C') AND (rq_gpao_facture_clients_pos.art_cod = @ART_COD) AND (rq_gpao_facture_clients_pos.cli_cod = @CLI_COD) ORDER BY rq_gpao_facture_clients_pos.fdp_dat_cre DESC -- Return the result of the function RETURN @PRIX_UNIT END
D'avance merci et bonne fin de journée...
Julius
Partager