external:pro_bonus:98_dop:sql_script

Различия

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

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

Следующая версия
Предыдущая версия
external:pro_bonus:98_dop:sql_script [2026/04/29 09:11] – создано Алексей Коробовexternal:pro_bonus:98_dop:sql_script [2026/10/22 07:00] (текущий) – Исправлены орфография, пунктуация и оформление; содержание не изменено Алексей Коробов
Строка 1: Строка 1:
 ====== SQL-скрипты ====== ====== SQL-скрипты ======
  
 +Могут пригодиться в особых ситуациях для решения проблем, для которых не предусмотрено кнопок в интерфейсе «админки».
  
-Могут пригодиться в особых ситуаций для решения проблем, для которых не предусмотрено кнопок в интерфейсе "админки".+===== Скрипт, сбрасывающий блокировки получателей рассылок в Telegram =====
  
-===== Скрипт, сбрасывающий блокировки получателей рассылок в telegram ===== +Если система конкретному гостю трижды не смогла отправить сообщение, то она перестанет пытаться это делать до тех пор, пока гость не проявит какую-то активность в боте. Чтобы сбросить эту блокировку, можно использовать скрипт:
-Tсли система конкретному гостю трижды не смогла отправить сообщение, то она перестанет пытаться это делать до тех пор, пока гость не проявит какую-то активность в боте. +
-Чтобы сбросить эту блокировку - можно использовать скрипт:+
  
 <code> <code>
Строка 15: Строка 14:
   AND telegram_fail_count > 0;   AND telegram_fail_count > 0;
 </code> </code>
 +
 +===== Скрипт, позволяющий посчитать, через заказы какого официанта было большее начисление бонусов за период =====
 +
 +<code>
 +WITH EmployeeBonuses AS (
 +    SELECT 
 +        c.[id] as check_id,
 +        EmployeeNode.value('@name', 'NVARCHAR(255)') AS EmployeeName,
 +        EmployeeNode.value('@code', 'NVARCHAR(50)') AS EmployeeCode,
 +        EmployeeNode.value('@role', 'NVARCHAR(10)') AS EmployeeRole,
 +        EmployeeNode.value('@id', 'NVARCHAR(100)') AS EmployeeId,
 +        (SELECT SUM(BonusNode.value('@sum', 'DECIMAL(18,2)'))
 +         FROM c.xml_native.nodes('/CHECK/CHECKDATA/CHECKBONUSES/BONUS') AS T(BonusNode)
 +        ) AS CheckBonusSum
 +    FROM 
 +        [dbo].[check] c
 +    CROSS APPLY 
 +        c.xml_native.nodes('/CHECK/CHECKDATA/CHECKPERSONS/PERSON') AS T(EmployeeNode)
 +)
 +SELECT 
 +    EmployeeName,
 +    EmployeeCode,
 +    EmployeeRole,
 +    SUM(CheckBonusSum) AS TotalBonus,
 +    COUNT(DISTINCT check_id) AS CheckCount
 +FROM 
 +    EmployeeBonuses
 +WHERE 
 +    CheckBonusSum IS NOT NULL
 +GROUP BY 
 +    EmployeeName, EmployeeCode, EmployeeRole
 +ORDER BY 
 +    TotalBonus DESC;
 +</code>
 +
  • external/pro_bonus/98_dop/sql_script.1777453906.txt.gz
  • Последнее изменение: 2026/04/29 09:11
  • — Алексей Коробов