c# - 平均存储过程中的空列

标签 c# asp.net sql stored-procedures

我有一个存储过程,我想对空列进行平均。

这是我的存储过程:

SELECT 
    AVG(planned) AS Planned,
    AVG(achieved) AS Achieved 
FROM 
    Port 
INNER JOIN 
    Technology ON Port.portID = Technology.portRef 

我使用数据源将此存储过程绑定(bind)到图表,当该列为空时,C# 代码抛出此错误:

Value was either too large or too small for a Decimal.

如何处理我的存储过程以avg那些空列?

最佳答案

当查询没有返回任何值时会发生这种情况。用这个

SELECT 
    coalesce(avg(planned),0) as Planned,
    coalesce(avg(achieved),0) as Achieved 
FROM 
    Port inner join Technology on Port.portID = Technology.portRef 

关于c# - 平均存储过程中的空列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11466609/

相关文章:

c# - 从字符串中拆分并删除重复项

c# - 搜索时 SQL 查询出错

MySQL IF 存在 INSERT else INSERT 过程

c# - 如何从反编译 .NET 程序集创建的 .resources 文件中提取图像?

c# - 如何避免用不同的方法重写相同的代码

.net - 在已部署的ASP.NET网站项目上,是否可以在不重新编译的情况下更新.resx文件?

c# - 如何按 SQL 中拼写错误的记录进行分组

sql - 将 bigint 转换为日期时间

c# - 如何在 ASP.NET Core 中添加 Mime 类型

c# - 执行多重响应;如何从响应中读取和存储 Guid