SQL Server:将数据类型varchar转换为数字时出错
情况是这样的。我有一个SQL Server表,其中包含以下列: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
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
字段,反之亦然。因此出现了错误。非常感谢。结果很好。这件事我已经讨论了两天了,非常感谢。结果很好。这件事我已经讨论了两天了,非常感谢。结果很好。这件事我已经讨论了两天了,非常感谢。结果很好。这件事我已经苦思冥想两天了。