【发布时间】:2019-02-05 15:59:40
【问题描述】:
我编写了以下查询来合并生产订单和库存转移的未清项目。对于来自 OWOR 表的查询(在 union all 之后)
我收到一个错误
将数据类型 nvarchar 转换为数值时出错
我尝试将小数(原来 6 个字符转换为 2 个字符)
Select t15.ObjType, t15.shipdate, t15.docentry, t15.linenum,
t15.linestatus, t15.itemcode, t15.Dscription, t15.Quantity, t15.OpenQty,
t15.price, t15.Currency, t15.rate, t15.DiscPrcnt, t15.LineTotal,
t15.OpenSum, t15.VendorNum, t15.WhsCode,
CASE
WHEN t15.objtype = 67 THEN 'Inventory Transfer Request'
ELSE 'unknown'
END AS Document_Type
From wtq1 t15
Union all
Select t16.ObjType, T16.DueDate, T16.Docentry, T16.ProdName,
T16.ItemCode, T16.Uom, CONVERT(DECIMAL(18,2), T16.PlannedQty),
CONVERT(DECIMAL(18,2), T16.CmpltQty), T16.Status, T16.PostDate,
T16.CloseDate, T16.CreateDate, T16.UpdateDate, T16.Warehouse,
T16.JrnlMemo, T16.Priority, T16.Printed,
CASE
WHEN t16.ObjType = 202 THEN 'Production Order'
ELSE 'Unknown'
END AS Document_Type
From owor T16
【问题讨论】:
-
您有一堆不匹配的列,根据它们的名称。那么 t15.LineStatus 和 t16.ItemCode 是同一类型吗?还是 t15.linenum 和 t16.ProdName 一样?您可以检查要联合在一起的每一列的数据类型。
标签: sql sql-server type-conversion