我正在使用SQL Server 2008.我正在尝试构建一个T-SQL查询,以根据来自多个表的数据计算一些性能指标。不幸的是,我坚持其中一项计算,无法弄清楚出了什么问题。我非常感谢任何帮助:
计算需要生成的总数(来自表格$.ajax({
// ... skipped ...
success:function(response, text){
if(response.users !== undefined){
dataSet1 = response.users;
}
// table confirgurations
var tableConfig={
// ... skippped ...
destroy: true
};
// ... skippped ...
var userTable=$('#table-id').DataTable(tableConfig);
}
});
),废品总数(来自表格ShiftHourCounts
)和总停机时间(来自ShiftReportScrap
查询)< / p>
我试图在查询中添加每个操作/计算主要是为了我自己的教育/疑难解答
我不明白为什么列Q返回零。 Q = Tok / Tp,查询正确返回并分别计算Tok和Tp。在下面的例子中,Q应该= 0.994
查询当前返回除Q,A,P和OEE之外的所有值的正确值。 Q,A,P和OEE始终返回零
当前查询:
Downtime
答案 0 :(得分:1)
最有可能来自整数除法。试试这个:
((isnull(p.TotalProduced+.0,0.0)-isnull(s.Scrap+.0,0.0))
/nullif(p.TotalProduced,0)) AS Q, --Q= Tok/Tp
添加.0
或乘以1.0
会将整数转换为decimal
类型。
除以整数将返回一个整数类型,如果该值小于1
,它将返回0
,因为它会截断而不是舍入或使用其他逻辑返回整数。