Stored Procedure mit Variablen

15/12/2009 - 12:36 von Patrick Pohlmann | Report spam
Hallo Zusammen,

ich versuche mir eine SP als Tabellenwertfunktion zusammen zu bauen. Leider
scheitert es an zwei Stellen an Wissen. Vielleicht kann jemand mal drüber
schauen und mir helfen?

Hier nun die SP mit meinen Fragen

CREATE FUNCTION [dbo].[ft_RS_EVN_TOP_10_X]
(@RgNr varchar, @TOPX varchar, @Stellen varchar)


DECLARE @X varchar

ZIel ist es soviele X zu bekommen wie Stellen angegeben wurden

if @Stellen = 1
BEGIN
set @X = 'X'
END
else
BEGIN
if @Stellen = 2
set @X = 'XX'
END
else
BEGIN
if @Stellen = 3
set @X = 'XXX'
END
else
BEGIN
if @Stellen = 4
set @X = 'XXXX'
END
else
BEGIN
if @Stellen = 5
set @X = 'XXXXX'
END
else
BEGIN
if @Stellen = 6
set @X = 'XXXXXX'
END
else
BEGIN
if @Stellen = 7
set @X = 'XXXXXXX'
END


RETURNS TABLE
AS
RETURN (SELECT TOP @TOPX LEFT(ZielnummerBerab, LEN(ZielnummerBearb) - 4) +
@X AS Ziel, COUNT(TImportID) AS Anzahl
FROM dbo.ft_RS_EVN(@RgNr)
GROUP BY LEFT(ZielnummerBerab, LEN(ZielnummerBearb) - 4)
HAVING (NOT LEFT(ZielnummerBerab, LEN(ZielnummerBearb) - 4) IS NULL))
ORDER BY COUNT(TImportID) DESC)
 

Lesen sie die antworten

#1 Stefan Hoffmann
15/12/2009 - 12:50 | Warnen spam
hallo Patrick,

On 15.12.2009 12:36, Patrick Pohlmann wrote:
ich versuche mir eine SP als Tabellenwertfunktion zusammen zu bauen.
Leider scheitert es an zwei Stellen an Wissen. Vielleicht kann jemand
mal drüber schauen und mir helfen?


Die Syntax erlaubt es nicht, sie inline table-valued function:

http://msdn.microsoft.com/en-us/lib...86755.aspx

kann. ZIel ist es soviele X zu bekommen wie Stellen angegeben wurden


Ja geht, nimm REPLICATE():

http://msdn.microsoft.com/en-us/lib...74383.aspx


mfG

Ähnliche fragen