Рейтинг докторов
/*
* Запрос обновления пользовательского рейтинга по докторам по 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)
администрирование/скрипты/цбд/web/рейтинг.докторов.txt · Последние изменения: 2019/07/04 08:24 (внешнее изменение)