Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

администрирование:скрипты:цбд:web:рейтинг.докторов [2019/07/04 08:24] (текущий)
Строка 1: Строка 1:
 +====== Рейтинг докторов ======
  
 +<code sql>
 +/*
 + * Запрос обновления пользовательского рейтинга по докторам по 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)
 +</​code>​

администрирование/скрипты/цбд/web/рейтинг.докторов.txt · Последние изменения: 2019/07/04 08:24 (внешнее изменение)