- В моем приложении я регистрирую статус файла для каждого задания на каждом этапе (например, запуск, предварительная обработка, обработка, завершение и т. Д.).
- Я хочу, чтобы в конце каждого дня запускалась одна хранимая процедура, и она проверяет, будет ли определенная работа давать определенный статус определенное количество раз.
- Если ожидается, он устанавливает сообщение как «Успешно». Если нет, то он дает ошибку соответственно (например, состояние предварительной обработки отсутствует, а затем задано сообщение как «Предварительная обработка не удалась» и т. Д.).
Мой подход заключается в создании одной таблицы поиска, которая будет содержать идеальные сценарии для каждой работы, каждого состояния и их количества в течение дня.Сравнение значений в двух таблицах в SQL Server
- тогда я буду считать количество всех статусов для конкретной работы из моего журнала таблицы и
- сравнить его с посмотреть таблицу по одному. Я не уверен, что я выбираю правильный путь для реализации этого.
Просим руководствоваться.
ответ
Вход Таблица:
Create Table Log_for_Jobs
(
Date_time datetime not null,
Job_name varchar(20) not null,
Job_status varchar(10) null,
Log_message varchar(100) null
)
, а затем создать СП для проверки рабочих мест, поместить результат в эту таблицу.
У вас может быть две таблицы, как вы предлагаете, одну для регистрации истории ваших заданий, а другую для хранения возможных состояний.
JobState
ID | Description
1 | Start
2 | Pre processing
3 | Processing
4 | Finished
5 | Error
Я думаю, что у вас есть два результата здесь, либо приложение регистрирует ошибку в данном состоянии (например, в течение 3 - обработки) или останавливается и ничего не записывать дальше. Я добавил 5 - Ошибка для представления состояния ошибки приложения.
Следующее, что нужно учитывать, - это выполнить запись каждого состояния или перезаписать предыдущее состояние? Две возможные причины для записи каждого состояния - это знать время, затрачиваемое на каждом шаге, и записывать дополнительную информацию вместе с каждым шагом (например, обрабатывать 150 строк и т. Д.). Но если вам не нужно, вы можете просто обновить строку для этой работы в следующем состоянии, и для успеха она должна закончиться 4 - Готово.
JobHistory
ID | JobID | JobTime | JobStateID | Message
1 | 55 | 1 Jan 2015 9:45am | 1 | Start file c:\test.txt
2 | 55 | 1 Jan 2015 9:47am | 2 | Preprocessing 117 rows...
3 | 55 | 1 Jan 2015 9:55am | 3 | Processing
4 | 55 | 1 Jan 2015 9:57am | 5 | ERROR: Unexpected character at line 321 - '@'
Я предполагаю, что он должен завершить предыдущий шаг, чтобы добраться до следующей. Если это так, вам просто нужно выбрать все задания, в которых state = 4, чтобы получить все, что было успешно завершено (затем что-то с ними делать).
SELECT *
FROM JobHistory
WHERE State = 4
// AND JobTime is within the last day?
И выберите все задания, группа по ID работы, имеющей максимальный (состояние) <> 4 для тех, кто с ошибками. Затем вы можете сделать что-то с максимальным состоянием, либо 5 - Ошибка (используйте сообщение об ошибке, зарегистрированное в таблице), либо 1, 2, 3, поэтому сообщите, что обработка остановлена на этом этапе.
SELECT JobID, Max(JobStateId) as EndJobStateId, Min(JobTime) as StartTime, Max(JobTime) as EndTime
FROM JobHistory
GROUP BY JobID
HAVING Max(JobStateId) <> 4
- 1. SQL Server: сравнение столбцов в двух таблицах
- 2. Сравнение двух значений в SQL Server
- 3. SQL Сравнение значений по диапазону дат в двух таблицах
- 4. Разбивка в двух таблицах в SQL Server
- 5. Сравнение значений в отдельных таблицах
- 6. Сравнение двух строк в двух отдельных таблицах
- 7. Сравнение двух столбцов в двух разных таблицах?
- 8. SQL Server Сравнение двух таблиц
- 9. SQL Server: сравнение двух столбцов
- 10. SQL Server Сравнение двух таблиц
- 11. Сравнение величин на двух таблицах
- 12. SQL Server - сравнение двух переменных
- 13. Сравнение данных в двух похожих таблицах
- 14. Сравнение значений двух полей в Oracle SQL
- 15. Сравнение двух параметров в функции SQL Server
- 16. Сравнение двух значений в MySQL
- 17. Получение отдельного значения в двух таблицах серверов SQL Server
- 18. Сравнение и сравнение двух таблиц в SQL Server
- 19. Сравнение двух дат в различных таблицах SQL с критериями
- 20. SQL: Сравнение если значение столбцов в двух таблицах равно
- 21. Сравнение нескольких строк в двух больших таблицах
- 22. Сравнение столбцов в двух разных таблицах
- 23. Сравнение значений столбцов в таблицах mysql
- 24. Проверка SQL в двух таблицах
- 25. SQL запросов в двух таблицах
- 26. Сравнение значений в двух хэшах
- 27. Сравнение значений в двух строках
- 28. Сравнение значений в двух файлах
- 29. Сравнение двух табличных значений
- 30. Сравнение двух переменных в SQL