Это старая версия документа.
Рейтинг докторов
/* * Запрос обновления пользовательского рейтинга по докторам по 5 параметрам * Запрос переработан из стандартного * * Автор: Коробка А.А. */ MERGE INTO markrates mr USING (SELECT markrecid, markrectype, marktypeid ,NULLIF(COUNT(CAST(markvalue AS tfloat)),0) marknumber ,avg(CAST(markvalue AS tfloat)) ratevalue ,NULLIF(COUNT(CAST(USER$markvalue2 AS tfloat)),0) USER$marknumber2 ,avg(CAST(USER$markvalue2 AS tfloat)) USER$ratevalue2 ,NULLIF(COUNT(CAST(USER$markvalue3 AS tfloat)),0) USER$marknumber3 ,avg(CAST(USER$markvalue3 AS tfloat)) USER$ratevalue3 ,NULLIF(COUNT(CAST(USER$markvalue4 AS tfloat)),0) USER$marknumber4 ,avg(CAST(USER$markvalue4 AS tfloat)) USER$ratevalue4 ,NULLIF(COUNT(CAST(USER$markvalue5 AS tfloat)),0) USER$marknumber5 ,avg(CAST(USER$markvalue5 AS tfloat)) USER$ratevalue5 FROM markvalues WHERE markrectype = 9 GROUP BY markrecid, markrectype, marktypeid ) mv ON ( mr.raterecid = mv.markrecid AND mr.raterectype = mv.markrectype AND mr.marktypeid = mv.marktypeid ) WHEN MATCHED THEN UPDATE SET mr.ratevalue = mv.ratevalue, mr.marknumber = mv.marknumber, mr.user$ratevalue2 = mv.user$ratevalue2, mr.user$marknumber2 = mv.user$marknumber2, mr.user$ratevalue3 = mv.user$ratevalue3, mr.user$marknumber3 = mv.user$marknumber3, mr.user$ratevalue4 = mv.user$ratevalue4, mr.user$marknumber4 = mv.user$marknumber4, mr.user$ratevalue5 = mv.user$ratevalue5, mr.user$marknumber5 = mv.user$marknumber5 WHEN NOT MATCHED THEN INSERT (mr.raterecid, mr.raterectype, mr.marktypeid, mr.ratevalue, mr.marknumber, mr.user$ratevalue2, mr.user$marknumber2, mr.user$ratevalue3, mr.user$marknumber3, mr.user$ratevalue4, mr.user$marknumber4, mr.user$ratevalue5, mr.user$marknumber5 ) VALUES (mv.markrecid, mv.markrectype, mv.marktypeid, mv.ratevalue, mv.marknumber, mv.user$ratevalue2, mv.user$marknumber2, mv.user$ratevalue3, mv.user$marknumber3, mv.user$ratevalue4, mv.user$marknumber4, mv.user$ratevalue5, mv.user$marknumber5)