SQL Server:将数据类型varchar转换为数字时出错

SQL Server:将数据类型varchar转换为数字时出错,sql,sql-server-2012,runtime-error,numeric,varchar,Sql,Sql Server 2012,Runtime Error,Numeric,Varchar,情况是这样的。我有一个SQL Server表,其中包含以下列: TaskOrder (varchar(50), null) Labor (decimal(18,2), null) LaborCLIN (varchar(50), null) 我正在创建一个传入参数的存储过程:@TaskOrder 我创建了一个临时表,如下所示: declare @miprfin table ( TaskOdr varchar(50), Labor decimal(18,2), LaborC

情况是这样的。我有一个SQL Server表,其中包含以下列:

TaskOrder (varchar(50), null)
Labor (decimal(18,2), null)
LaborCLIN (varchar(50), null)
我正在创建一个传入参数的存储过程:
@TaskOrder

我创建了一个临时表,如下所示:

declare @miprfin table
(
    TaskOdr varchar(50),
    Labor decimal(18,2),
    LaborClin varchar(50)
)
当我运行以下查询时:

insert into @miprfin
   select TaskOrder, LaborCLIN, sum(labor) as labor
   from MIPRFIN 
   where TaskOrder = @TaskOrder
   group by TaskOrder, LaborCLIN
   order by LaborCLIN
我收到以下错误消息:

Msg 8114,第16级,第5状态,第404行
将数据类型varchar转换为数字时出错

我看不出它试图在哪里转换任何数据


我正在使用SQL Server 2012 Management Studio

您应该始终将列放在插入的
中,这就是为什么:

insert into @miprfin(TaskOdr, LaborCLIN, Labor)
    select TaskOrder, LaborCLIN, sum(labor) as labor
    from MIPRFIN 
    where TaskOrder = @TaskOrder
    group by TaskOrder, LaborCLIN
    order by LaborCLIN;

您将
labor
放入
laborclin
字段,反之亦然。因此出现了错误。

您应该始终将列放在插入的
中,这就是为什么:

insert into @miprfin(TaskOdr, LaborCLIN, Labor)
    select TaskOrder, LaborCLIN, sum(labor) as labor
    from MIPRFIN 
    where TaskOrder = @TaskOrder
    group by TaskOrder, LaborCLIN
    order by LaborCLIN;

您将
labor
放入
laborclin
字段,反之亦然。因此出现了错误。

您应该始终将列放在插入的
中,这就是为什么:

insert into @miprfin(TaskOdr, LaborCLIN, Labor)
    select TaskOrder, LaborCLIN, sum(labor) as labor
    from MIPRFIN 
    where TaskOrder = @TaskOrder
    group by TaskOrder, LaborCLIN
    order by LaborCLIN;

您将
labor
放入
laborclin
字段,反之亦然。因此出现了错误。

您应该始终将列放在插入的
中,这就是为什么:

insert into @miprfin(TaskOdr, LaborCLIN, Labor)
    select TaskOrder, LaborCLIN, sum(labor) as labor
    from MIPRFIN 
    where TaskOrder = @TaskOrder
    group by TaskOrder, LaborCLIN
    order by LaborCLIN;

您将
labor
放入
laborclin
字段,反之亦然。因此出现了错误。

非常感谢。结果很好。这件事我已经讨论了两天了,非常感谢。结果很好。这件事我已经讨论了两天了,非常感谢。结果很好。这件事我已经讨论了两天了,非常感谢。结果很好。这件事我已经苦思冥想两天了。