Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 настройка триггера, для проверки наблюдений  [new]
Kontox
Member

Откуда:
Сообщений: 146
пример таблицы
declare @t table (code int,item int,[return] int,[action] int)
insert @t (code,item,[return],[action])
values
( 123 ,123 , 123 ,123),
(123 ,123 , 123 ,123),
( 123 ,123 , 123 ,123),
( 123 ,123 , 123 ,123)

select * from @t

4 поля это 4 таблицы (code,item,[return],[action]). 123 это количество наблюдений в таблицах . Должно быть одинаковое.
для чего? таблица @t верификационная .если в какой-то из 4 таблиц разное число наблюдений, это плохо , надо предотвращать.


т.е. каждый день в отдельную таблицу(@t) поступает строчка с количество наблюдений в этих 4 таблицах.
она нужна для контроля наблюдений


можно ли сделать триггер
итак если в таблице @t
например 5 окт 2018
пришло такое соотношение

124,124,125,124 т.е в таблице return оказалось на одно наблюдение больше

т.е. такие наблюдения такие наблюдения в отдельную таблицу, назовем ее badtable

например в новой таблице badtable
будет примерно так (в идеале дату генерить, когда строка оказалась в badtable)
table x1 x2 x3 x4 x5 date
return 1 2 3 4 5 5.10.2018
4 окт 18, 15:22    [21695344]     Ответить | Цитировать Сообщить модератору
 Re: настройка триггера, для проверки наблюдений  [new]
iiyama
Member

Откуда:
Сообщений: 642
Kontox,
?
declare @t table (code int,item int,[return] int,[action] int)
insert @t (code,item,[return],[action])
values
( 123 ,123 , 124 ,123),
(123 ,123 , 123 ,123),
( 123 ,123 , 123 ,123),
( 123 ,123 , 123 ,123)

;With NormLog
AS
(
select  *, MAX(TestCount) OVER(partition BY X) as MaxTestCount, MIN(TestCount) OVER(partition BY X) as MinTestCount, COUNT(*) OVER(partition BY X, TestCount) as Freq 
FROM 
(select *, ROW_NUMBER() OVER(order by (select 1)) as X from @t)p
UNPIVOT
(TestCount For TableName IN ([code],[item],[return],[action])
) unpvt
)

select top 1 with ties *
from NormLog
where MaxTestCount>MinTestCount 
order by Freq
4 окт 18, 16:53    [21695503]     Ответить | Цитировать Сообщить модератору
 Re: настройка триггера, для проверки наблюдений  [new]
Kontox
Member

Откуда:
Сообщений: 146
Именно, спасибо Вам.
5 окт 18, 12:06    [21696216]     Ответить | Цитировать Сообщить модератору
 Re: настройка триггера, для проверки наблюдений  [new]
Kontox
Member

Откуда:
Сообщений: 146
Вопросик появился
select top 1 with ties *
into dbo.checkgroup
from NormLog
where MaxTestCount>MinTestCount
order by Freq

я создал таблицу dbo.checkgroup

как сделать, чтобы каждый раз при запуске этого кода таблица dbo.checkgroup обновлялось новой строчкой

если код повторно запустить, то будет ошибка, что такая табла уже есть

Сообщение 2714, уровень 16, состояние 6, строка 69
В базе данных уже существует объект с именем "checkgroup".
11 окт 18, 13:23    [21701531]     Ответить | Цитировать Сообщить модератору
 Re: настройка триггера, для проверки наблюдений  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
Kontox
Вопросик появился
select top 1 with ties *
into dbo.checkgroup
from NormLog
where MaxTestCount>MinTestCount
order by Freq

я создал таблицу dbo.checkgroup

как сделать, чтобы каждый раз при запуске этого кода таблица dbo.checkgroup обновлялось новой строчкой

если код повторно запустить, то будет ошибка, что такая табла уже есть

Сообщение 2714, уровень 16, состояние 6, строка 69
В базе данных уже существует объект с именем "checkgroup".
Удивительно, но кроме SELECTа есть ещё команда INSERT
11 окт 18, 14:09    [21701617]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить