Мне нужно присоединиться к MSSQL-запросам, но я никуда не денусь с этим.

Оба запроса возвращают одно значение:

 SELECT COUNT(*) FROM sysjobhistory WHERE run_status <> 1 AND step_id = 0;

 SELECT MAX (run_date) FROM sysjobhistory WHERE run_status = 1 AND step_id = 0;

Я полный нуб SQL, поэтому любая помощь приветствуется

2 ответа2

2

Если вы хотите объединиться, назовите столбцы:

SELECT COUNT(*) AS 'Column' FROM sysjobhistory WHERE run_status <> 1 AND step_id = 0
 UNION
SELECT MAX (run_date) AS 'Column' FROM sysjobhistory WHERE run_status = 1 AND step_id = 0

Если вам нужны два столбца в одном запросе, вы можете использовать подзапросы:

SELECT (SELECT COUNT(*) FROM sysjobhistory WHERE run_status <> 1 AND step_id = 0) AS 'Count', (SELECT MAX (run_date) AS 'Column' FROM sysjobhistory WHERE run_status = 1 AND step_id = 0) AS 'Max'
1

Трудно сказать, что вы хотите, чтобы вывод был, но я думаю, что это поможет вам:

DECLARE @Count INT
DECLARE @MaxRunDate DateTime -- I'm guessing run_date is a datetime... 

SELECT @Count = COUNT(*)
    FROM sysjobhistory WHERE run_status <> 1 AND step_id = 0;
SELECT @MaxRunDate = MAX(run_date)
    FROM sysjobhistory WHERE run_status = 1 AND step_id = 0;

SELECT @Count, @MaxRunDate

Есть и другие способы сделать это, в том числе с помощью JOIN, но я считаю, что вышесказанное легче понять, особенно для начинающих.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .