我无法使用case 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)
请帮助定义带有案例选择的标量函数(?) 迈克尔
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
答案 0 :(得分:0)
第一个选择语句缺少结束,它应该像下面一个
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)