1. 问题描述分析
erp web 日志记录 执行sql错误,一天100多次错误,数据转换时出现溢出错误
2 .解决方案
将 Score DECIMAL(16, 14) NOT NULL 范围改大一点:Score DECIMAL(18, 14) NOT NULL, 执行成功,1秒出结果
3. 错误sql
DECLARE @AlikeResultTable TABLE
(
SKU VARCHAR(50) NOT NULL,
Score DECIMAL(16, 14) NOT NULL
);
INSERT INTO @AlikeResultTable
(SKU,
Score)
VALUES ('14001849',
119.385635375977),
('7129380',
6.07243728637695),
('5939285',
5.90719270706177),
('9688237',
5.47023868560791),
('9688284',
5.47023868560791),
('11029430',
5.46894073486328),
('11029669',
5.46894073486328),
('11029097',
5.46894073486328),
('11027761',
5.46894073486328),
('11305338',
5.4216947555542),
('6470545',
5.41932678222656),
('10647278',
5.05120420455933),
('6587087',
5.04551601409912),
('5883071',
5.01710844039917),
('12176472',
4.93030500411987),
('6587295',
4.85857105255127),
('13251741',
4.84732818603516),
('6571671',
4.84063625335693),
('7131492',
4.7950177192688),
('7131538',
4.7950177192688),
('8949879',
4.78534364700317),
('6908527',
4.78420782089233),
('3989909',
4.73950242996216),
('7461708',
4.65147829055786),
('6915398',
4.63383769989014),
('5404644',
4.61791753768921),
('6299772',
4.61118412017822),
('4004788',
4.57469463348389),
('6524358',
4.51312303543091),
('14029159',
4.50455236434937),
('11198597',
4.48838186264038),
('10930835',
4.46613550186157),
('14029439',
4.46613550186157),
('10931025',
4.379310131073),
('6568990',
4.36816167831421),
('3873885',
4.35601043701172),
('4976583',
4.3469705581665),
('6587086',
4.3340048789978),
('2873811',
4.24939393997192),
('6564885',
4.11433076858521);
SELECT a.Id,
a.SKU,
a.ProductProperty,
a.ImageUrl,
a.ProductGroupSKU,
a.ProductState,
b.SupplierPrice,
c.DevelopAdminName,
c.DevelopTime,
c.OnlineTime,
b.WebProductUrl,
b.SupplierID
FROM dbo.RB_Product a
INNER JOIN @AlikeResultTable l
ON a.SKU = l.SKU
LEFT JOIN dbo.RB_Product_SupplierPrice b
ON a.CustomerID = b.CustomerID
AND a.SKU = b.SKU
AND b.IsDefault = 1
LEFT JOIN dbo.RB_Product_Admin c
ON a.CustomerID = c.CustomerID
AND a.SKU = c.SKU
WHERE a.CustomerID = 1
ORDER BY l.Score DESC
--PARAMS:@CustomerID = 1 ,MESSAGE:Arithmetic overflow error converting numeric TO data type numeric.
参考解决方案 修改