IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

[Debutant] utilisation d'une stored procedure + Table-valued function


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Points : 107
    Points
    107
    Par défaut [Debutant] utilisation d'une stored procedure + Table-valued function
    Bonjour,

    Je suis debutant en SQL donc soyez indulgent svp . Voila mon probleme.

    J ai une base de donnee tres simple, juste une table TABLE qui contient : CellID as int, ReturnPeriod as int, Duration as int and TotalDepth as float.

    Quand l utilisateur fournit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetProfile(@CellID, @Duration, @ReturnPeriod, @Timestep)
    (Timestep as float)

    Grace aux parametres @CellID, @Duration, @ReturnPeriod, j'identifie quelle TotalDepth est associée avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    USE [Ireland - Pluvial Data]
    GO
    ALTER PROCEDURE [dbo].[GetProfile]
    @CellID int,
    @ReturnPeriod int,
    @Duration int,
    @Timestep float
    AS
    BEGIN
    SELECT CellsRainfall.TotalDepth
    From CellsRainfall
    Where CellsRainfall.CellID=@CellID AND CellsRainfall.ReturnPeriod=@ReturnPeriod AND CellsRainfall.Duration=@Duration 
    END
    Mais mon probleme est que je ne voudrais pas directement retourner le TotalDepth associé, mais l utiliser (ainsi que @Duration et @Timestep) pour calculer un vecteur de valeurs.

    Par exemple, imaginons que ma fonction soit que je veuille retourner a l utilisateur un vecteur contenant @Duration valeurs qui sont TotalDepth*index*@Timestep. (Avec index variant de 1 a @Duration), donc un truc comme :

    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
    25
    26
    27
    ALTER FUNCTION [dbo].[TestTable] 
    (
    	@TotalDepth float,
    	@Duration int,
    	@Timestep float
    )
    RETURNS 
    @IDS TABLE 
    (
    	ID int
    ) 
    AS
    BEGIN
    	DECLARE 
    		@Index1 int,
    		@Resultat float;  
    	SET @Index1=1
    	WHILE @Index1<=@Duration
    	BEGIN
    		SET @Resultat=@TotalDepth*@Index1*@Timestep
    		INSERT INTO @IDS(ID)
    		VALUES(@Resultat) 
    		SET @Index1=@Index1+1
    	END
     
    	RETURN 
    END
    Mon probleme est que je ne sais pas comment inserer dans ma stored procedure, le fait que je doive appeler ma fonction TestTable avec la TotalDepth identifiée dans ma table et les parametres @Duration et @Timestep.

    En fait, j aurais crus qu un truc comme le code suivant marche, mais non ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT dbo.TableTest(CellsRainfall.TotalDepth,@Duration,@Timestep)
    From CellsRainfall
    Where CellsRainfall.CellID=@CellID AND CellsRainfall.ReturnPeriod=@ReturnPeriod AND CellsRainfall.Duration=@Duration 
    END
    Merci

    Slumpy.

  2. #2
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Points : 107
    Points
    107
    Par défaut
    Resalut,

    J ai finalement trouvé la reponse a mon probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT CellsRainfall.TotalDepth,TT.*
    From CellsRainfall
    CROSS APPLY dbo.TestTable(TotalDepth,Duration,@Timestep) TT
    Where CellsRainfall.CellID=@CellID AND CellsRainfall.ReturnPeriod=@ReturnPeriod AND CellsRainfall.Duration=@Duration
    Merci

    Slumpy

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2K5] Droits d'accès sur les tables; via une stored procedure
    Par cavo789 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/04/2008, 06h57
  2. chart à partir d'une stored procedure
    Par fayoub dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 15/08/2007, 14h26
  3. [debutant] utilisation d'une fonction predefini "count"
    Par le_voisin dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/07/2007, 06h22
  4. [sql 200] Problème avec une stored procedure
    Par marc_dd dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 01/12/2006, 15h11
  5. [QUERY ANALYSER]problème au lancement d'une stored procedure
    Par gregorian dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/11/2005, 16h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo