Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / настройка триггера, для проверки наблюдений / 5 сообщений из 5, страница 1 из 1
04.10.2018, 15:22
    #39713058
Kontox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
настройка триггера, для проверки наблюдений
пример таблицы
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
...
Рейтинг: 0 / 0
04.10.2018, 16:53
    #39713128
iiyama
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
настройка триггера, для проверки наблюдений
Kontox,
?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
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
...
Рейтинг: 0 / 0
05.10.2018, 12:06
    #39713473
Kontox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
настройка триггера, для проверки наблюдений
Именно, спасибо Вам.
...
Рейтинг: 0 / 0
11.10.2018, 13:23
    #39716094
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".
...
Рейтинг: 0 / 0
11.10.2018, 14:09
    #39716151
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
настройка триггера, для проверки наблюдений
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
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / настройка триггера, для проверки наблюдений / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]