2015-01-12 2 views
0

SQL은 저의 전문 분야가 아니므로 저와 함께주십시오.두 테이블에서 두 개의 열을 추가하고 결과를 세 번째로 삽입하십시오.

Veeam 백업 및 복제를 사용하고 있습니다. 백업 성공률이 필요합니다. 불행히도 Veeam은 백업을 제공하지 않습니다.

Veeam에는 "Bjobs"라고하는 SQL 테이블이 있습니다 (알고 있습니다!) "Name"과 "Latest_Result"에 대한 컬럼이 있습니다. 여기서 성공을위한 최신 결과 = 0입니다.

나는 "이름" "Success_Total" "Job_Total"와 "Percentage_Success"에 대한 열이 "Bjobs_history"라는 새 테이블을 만든

내 계획은에 "1"을 추가하는 SQL 쿼리를 작성하는 것입니다 "Job_total"열은 작업이 실행될 때마다,이 비트는 내가 할 수 있다고 생각합니다.

작업이 성공한 경우에만 "Success_Total"에 1을 추가하고 싶습니다. 그런 다음 두 결과에 대한 비율을 계산할 수 있습니다.

그래서 5 일 동안 모두 실행 매일 조바 및 JobB을했고 조바 매일 성공하지만, JobB 내 표는 Latest_result = 0부터이

Name | Success_Total | Job_total 

JobA |  5   | 5 

JobB |  4   | 5 

과 같을 것이다, 한 번 실패 할 경우 성공하면 이 결과에 1을 더한 다음이를 "Success_total"열에 추가해야합니다.

이것은 success_total을 업데이트해야합니다. 작동하지 않습니다. 아무도 도와 줄 수 있습니까?

select latest_result + 1 as val1 
from bjobs join bjob_history 
on (bjobs.name = BJob_History.name) 
where latest_result = 0 
update BJob_History set Success_Total = val1 
+0

하지 무엇 그것에 대해 작업 (즉, 오류 메시지가 나타납니다)? 그것들은 우리가 당신을 도울 수 있도록 도와 줄 것입니다. 업데이트 단계가 실패 했습니까? 업데이트를 시도하지 않고 select 만 실행하면 올바른 결과를 얻으실 수 있습니까? –

+0

안녕하세요. 죄송합니다 - 메시지 207, 수준 16, 상태 1, 줄 5 'val1'열 이름이 잘못되었습니다. –

답변

1

이 시도 : 난 그냥 당신의 진술과 지금 작업에 여분의 비트를 추가

king.code @

UPDATE BH 
SET BH.Success_Total = BH.Success_Total + B.latest_result + 1 
FROM BJob_History AS BH 
INNER JOIN bjobs AS B 
    ON B.name = BH.name 
WHERE B.latest_result = 0 
+0

감사합니다 백만, 치료를했습니다! 나는 그 진술이 지금 어떻게 작동하는지 정확히 알아 내려고 노력할 것이다 :) –

+0

사실, 나는 너무 빨리 말했지만, 처음에는 작동하지만 매일 실행해야하고 "Success_Total"값이 각각 1 씩 증가해야한다. 성공적인 백업. 그래서 내가 작성한 원래 쿼리에서 success_total + latest_result + 1을 success_total으로 합산하려고 시도한 것입니다. 분명히 작동하지 않았습니다. –

+0

글쎄,이 질문에 대한 답변을 생각합니다. 나는 네가하는 말을 이해하지 못하고, 더 잘 설명하려고 노력한다. 어쩌면 샘플 데이터와 예상 결과를 게시 할 수 있습니다. – dario

0

, 감사

UPDATE BH 
SET BH.Success_Total = BH.Success_Total + B.latest_result + 1 
FROM BJob_History AS BH 
INNER JOIN bjobs AS B 
ON B.name = BH.name 
WHERE B.latest_result = 0 
관련 문제