2015-01-12 127 views
0

SQL不是我的专业领域,所以请耐心等待。从两个表中添加两列并将结果插入第三个

我正在使用Veeam备份和复制,我需要一个正在运行的备份成功百分比,不幸的是Veeam没有提供。我知道它有一个名为“Name”和“Latest_Result”的列,其中最新结果= 0表示成功。

我已经创建了一个名为“Bjobs_history”与“名”“Success_Total”“Job_Total”和“Percentage_Success”列的新表

我的计划是创建一个SQL查询并增加“1”到每次作业运行时都会显示“Job_total”列,这一点我认为我能做到。

然后我只想在工作成功时将“Success_Total”加1。然后我可以计算出这两个结果的百分比。

所以,如果我有职吧和JOBB每一天都在运行5天,职吧是成功的每一天,但JOBB失败一次,我的表是这样的

Name | Success_Total | Job_total 

JobA |  5   | 5 

JobB |  4   | 5 

由于Latest_result = 0时成功,我需要为此结果添加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

什么是不关于它的工作(即你看到任何错误信息)?那些会帮助我们帮助你。更新步骤失败了吗?如果你不尝试更新,但只运行选择,你会得到正确的结果吗? –

+0

嗨。抱歉,错误提示 - 消息207,级别16,状态1,行5 列名称'val1'无效。 –

回答

1

试试这个:

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

@ 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 
相关问题