定义(标量)函数
Defining a (scalar) function
我不能定义这样的函数,大小写 select:
SELECT @NoShowRate=(Select case when tblPersonal.AnmeldungenXX = 0 and
tblPersonal.Anmeldungen - tblPersonal.AnmeldungenNO = 0 then 0
when tblPersonal.Anmeldungen -
tblPersonal.AnmeldungenNO > 0 and tblPersonal.Teilnahmen=0 then 0
when tblPersonal.Teilnahmen >
tblPersonal.Anmeldungen then 100
else
((tblPersonal.Teilnahmen*100)/(tblPersonal.Anmeldungen -
tblPersonal.AnmeldungenNO))
FROM dbo.tblPersonal WHERE tblPersonal.aktiv=1 and
tblPersonal.MaID=@MaID)
但是这个行得通:
SELECT @NoShowRate=
(SELECT ((tblPersonal.Teilnahmen*100)/(tblPersonal.Anmeldungen -
tblPersonal.AnmeldungenNO))
FROM dbo.tblPersonal WHERE tblPersonal.aktiv=1 and tblPersonal.MaID=@MaID)
请帮助定义标量函数 (?) 与案例 select。
迈克尔
MaID AnmeldungenXX AnmeldungenNO Teilnahmen Reliability
1 0 0 23 NULL
2 1 0 1 NULL
3 2 1 2 NULL
4 0 0 0 NULL
5 0 0 0 NULL
6 0 0 1 NULL
7 0 0 0 NULL
8 1 0 35 NULL
9 0 0 0 NULL
10 0 0 0 NULL
11 1 0 25 NULL
12 2 4 17 NULL
13 0 0 0 NULL
14 0 0 0 NULL
第一个 select 语句缺少结尾,应该类似于下面的语句
SELECT @NoShowRate=(Select case when tblPersonal.AnmeldungenXX = 0 and tblPersonal.Anmeldungen - tblPersonal.AnmeldungenNO = 0 then 0
when tblPersonal.Anmeldungen - tblPersonal.AnmeldungenNO > 0 and tblPersonal.Teilnahmen=0 then 0
when tblPersonal.Teilnahmen > tblPersonal.Anmeldungen then 100
else ((tblPersonal.Teilnahmen*100)/(tblPersonal.Anmeldungen - tblPersonal.AnmeldungenNO)) end
FROM dbo.tblPersonal WHERE tblPersonal.aktiv=1 and tblPersonal.MaID=@MaID)
我不能定义这样的函数,大小写 select:
SELECT @NoShowRate=(Select case when tblPersonal.AnmeldungenXX = 0 and
tblPersonal.Anmeldungen - tblPersonal.AnmeldungenNO = 0 then 0
when tblPersonal.Anmeldungen -
tblPersonal.AnmeldungenNO > 0 and tblPersonal.Teilnahmen=0 then 0
when tblPersonal.Teilnahmen >
tblPersonal.Anmeldungen then 100
else
((tblPersonal.Teilnahmen*100)/(tblPersonal.Anmeldungen -
tblPersonal.AnmeldungenNO))
FROM dbo.tblPersonal WHERE tblPersonal.aktiv=1 and
tblPersonal.MaID=@MaID)
但是这个行得通:
SELECT @NoShowRate=
(SELECT ((tblPersonal.Teilnahmen*100)/(tblPersonal.Anmeldungen -
tblPersonal.AnmeldungenNO))
FROM dbo.tblPersonal WHERE tblPersonal.aktiv=1 and tblPersonal.MaID=@MaID)
请帮助定义标量函数 (?) 与案例 select。
迈克尔
MaID AnmeldungenXX AnmeldungenNO Teilnahmen Reliability
1 0 0 23 NULL
2 1 0 1 NULL
3 2 1 2 NULL
4 0 0 0 NULL
5 0 0 0 NULL
6 0 0 1 NULL
7 0 0 0 NULL
8 1 0 35 NULL
9 0 0 0 NULL
10 0 0 0 NULL
11 1 0 25 NULL
12 2 4 17 NULL
13 0 0 0 NULL
14 0 0 0 NULL
第一个 select 语句缺少结尾,应该类似于下面的语句
SELECT @NoShowRate=(Select case when tblPersonal.AnmeldungenXX = 0 and tblPersonal.Anmeldungen - tblPersonal.AnmeldungenNO = 0 then 0
when tblPersonal.Anmeldungen - tblPersonal.AnmeldungenNO > 0 and tblPersonal.Teilnahmen=0 then 0
when tblPersonal.Teilnahmen > tblPersonal.Anmeldungen then 100
else ((tblPersonal.Teilnahmen*100)/(tblPersonal.Anmeldungen - tblPersonal.AnmeldungenNO)) end
FROM dbo.tblPersonal WHERE tblPersonal.aktiv=1 and tblPersonal.MaID=@MaID)