Внутренний номер сотрудника по ID пользователя — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
Строка 9: Строка 9:
 
[[Файл:Внутренний номер по IDuser 001.png|center]]
 
[[Файл:Внутренний номер по IDuser 001.png|center]]
  
 
+
<pre>
 
SELECT top 1 @prefix=Prefix
 
SELECT top 1 @prefix=Prefix
 
FROM (
 
FROM (
Строка 24: Строка 24:
 
       ) t
 
       ) t
 
ORDER BY cnt,  Visible DESC
 
ORDER BY cnt,  Visible DESC
 +
</pre>
  
 
где
 
где

Версия 12:50, 10 июня 2014

Наверх

SQL-запрос находит по таблице внутренний номер пользователя по его идентификатору.

  • Запрос находит такой внутренний номер, в котором может быть только один пользователь и несколько внешних номеров и линий.
  • Если в номере больше 1 пользователя или есть внутренние номера, то считается что это номер групповой.
  • Если у сотрудника все номера групповые возвращается тот, у которого меньше объектов.
Внутренний номер по IDuser 001.png
SELECT top 1 @prefix=Prefix
FROM (
        SELECT COALESCE((SELECT count(*) 
                                            FROM A_RuleRecords s_r  
                                              LEFT JOIN A_NumberPlanAction s_npa ON  s_r.ReactID = s_npa.NumID 
                                              LEFT JOIN A_RuleRecords ss_r ON s_npa.ExtraId = ss_r.RuleId 
                                            WHERE s_r.RuleID = r.RuleID AND (s_r.ReactID IN (SELECT ID FROM A_USERS) OR s_npa.NumID IS NOT NULL)),0) cnt
        , np.Prefix, np.Visible
            FROM A_NumberPlan np 
              INNER JOIN A_NumberPlanAction npa ON np.ID=npa.NumID 
              JOIN A_RuleRecords r ON r.RuleID =  npa.ExtraId AND r.reactid=@userid
                    AND InnerAddressType=0  -- Если только "Внутренние номера"
      ) t
ORDER BY cnt,  Visible DESC

где

  • @prefix (вых) - содержит внутренний номер пользователя
  • @userid (вх) - ID пользователя


ВНИМАНИЕ: Начиная с версии 2.10 внутренний номер пользователя может быть найден с помощью компонента "Статус объекта"