首页 > 解决方案 > 记录集标准的错误取决于键是文本还是数字

问题描述

我需要从一个表中提取一些数据,在我有数字或文本值的同一列中。如果我需要提取记录直到值 100% 并且我使用这个字符串:

Select count(TypeTrasp) as nr, 
[DataAttesa KPI2-1] as Data FROM [db_Out$] 
Where TypeTrasp = 'AOG' and [DGR] < 1 group by [DataAttesa KPI2-1]`

我收到此错误运行时'-2147217913 (80040e07)'

使用此字符串(文本键)我检索正确的记录:

select count(TypeTrasp) as nr, 
[DataAttesa KPI2-1] as Data FROM [db_Out$] 
Where TypeTrasp = 'AOG' and [DGR]= 'Out of Time' group by [DataAttesa KPI2-1]`

我知道在文本键中我需要使用“xxx”,但在数字键中我不能。

编辑,我将字段名称从 DGR 更改为 2-1,在我的 excel 表示例下方,目标是每个 [2-1] 条件的连续记录

表示例。

标签: exceltsqlrecordsetjet

解决方案


运行时错误“-2147217913 (80040e07)”与错误的转换有关。当您说“在同一列中我有数字或文本值”时。在该列中,您实际上只有文本值。在 where 子句中尝试 [DGR] < '1' ,数量在配额中。

 Select count(TypeTrasp) as nr, 
 [DataAttesa KPI2-1] as Data FROM [db_Out$] 
 Where TypeTrasp = 'AOG' and [DGR] < '1' group by [DataAttesa KPI2-1]`

此外,请考虑使用 TRY_CONVERT(int, [DGR]) 来确定文本是否为实际数字。 https://docs.microsoft.com/en-us/sql/t-sql/functions/try-convert-transact-sql?view=sql-server-2017


推荐阅读