Syntax für Create Function in MS SQL 2005

Gast #2226528
Lesenswert?

Hallo, ich möchte mir eine Funktion (scalar, soll nur einen Wert 
zurückgeben) in eine SQL-Datenbank (MS SQL-Server 2005) einbauen. Was 
geht ist folgendes:

ALTER FUNCTION test1(@para_id int)
RETURNS int
AS
BEGIN
return
(
  SELECT count(id) FROM aa WHERE aa.prop = @para_id
)
END


Jetzt möchte ich aber z.B. mehrere Tabellen abfragen und mir die 
Zwischenergebnisse merken, um später dann damit weiterzurechnen und 
schließlich irgendetwas zurückzugeben. Was ich nicht verstehe: wie 
bekomme ich ein Abfrageergebnis (eine Spalte eine Zeile) in eine 
Variable? Also es soll ca. so aussehen:

ALTER FUNCTION test1(@para_id int)
RETURNS int
AS
BEGIN
return
(
declare var1 as int
declare var2 as int

var1=  SELECT count(id) FROM aa WHERE aa.prop = @para_id
var2=  SELECT count(id) FROM bb WHERE bb.prop = @para_id

return var1+var2
)
END

Ich hoffe, Ihr könnt mir mit der Syntax einen Tip geben.
Gast #2226533
Lesenswert?

ALTER FUNCTION test1(@para_id int)
RETURNS int
AS
BEGIN
return
(
declare @var1 int
declare @var2 int

set @var1=  (SELECT count(id) FROM aa WHERE aa.prop = @para_id)
set @var2=  (SELECT count(id) FROM bb WHERE bb.prop = @para_id)

return var1+var2
)
END
Persönliche Seite #2227376
Lesenswert?

1
ALTER FUNCTION test1(@para_id int) RETURNS int
2
AS
3
BEGIN
4
  declare @var1 int
5
  declare @var2 int
6

7
  set @var1 = (SELECT count(id) FROM aa WHERE aa.prop = @para_id)
8
  set @var2 = (SELECT count(id) FROM bb WHERE bb.prop = @para_id)
9

10
  return @var1 + @var2
11
END

Das übersteht zumindest die einfache Syntaxüberprüfung der SQL 
Management Console (MSSQL2005).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren