在SQL中汇总具有多种数据类型的列

时间:2018-07-07 17:17:31

标签: sql sql-server

我对SQL还是很陌生,正在尝试在sql服务器中编写查询以获取每周文档总数。我的查询如下:

SELECT 
    [table].[week],
    SUM(ISNULL([table].[documents],0))
FROM 
    [table]
JOIN 
    (VALUES (15,187293),...other pairs...,(127,120918)) AS Outside ([ID],[Organization]) ON Outside.[ID]=[table].[ID]
                                 AND Outside.[Organization] = [table].[Organization]
GROUP BY 
    week

同一查询在每周输出文档的不同表(格式完全相同)上工作,但是当我在该表上运行它时,出现错误

  

第245级状态1状态2线
  将varchar值'#N / A'转换为数据类型int时,转换失败。

“文档”列中没有类似于#N / A的内容。我该如何适当地计算这笔款项?

1 个答案:

答案 0 :(得分:1)

要查找有问题的行,请运行查询:

label

或更妙的是:

select t.*
from table t
where id = '#N/A' or organization = '#N/A';

您可以通过在select t.* from table t where try_convert(int, id) is null or try_convert(int, organization) is null; 值集中使用适当的类型来解决问题。也就是说,一个或两个值都应该用单引号引起来,因此它们是字符串而不是数字。