定义(标量)函数

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)