Ms access ms access条件表达式中的数据类型不匹配错误
我正在使用以下查询:Ms access ms access条件表达式中的数据类型不匹配错误,ms-access,Ms Access,我正在使用以下查询: select Containers.SalesOrderNumber, GetWeightInMT(Sum([NetWeight]), WeightUOM) as Expr1, CInt(Round(GetWeightInMT(Sum([NetWeight]), WeightUOM), 0)) as WtMt, SalesOrders.CustomerID, SalesOrders.SalesOrderID, SalesOrders.
select Containers.SalesOrderNumber,
GetWeightInMT(Sum([NetWeight]), WeightUOM) as Expr1,
CInt(Round(GetWeightInMT(Sum([NetWeight]), WeightUOM), 0)) as WtMt,
SalesOrders.CustomerID,
SalesOrders.SalesOrderID,
SalesOrders.UnitPrice,
SalesOrders.Quantity,
SalesOrders.SalesCommission,
SalesOrders.LatestShipDate,
SalesOrders.PortOfDischarge,
SalesOrders.PlaceOfDelivery,
SalesOrders.LowerTolerancePct,
SalesOrders.UpperTolerancePct,
SalesOrders.Grade,
(SalesOrders.Quantity - WtMt) as OpenQty
from Containers
inner join SalesOrders on Containers.SalesOrderNumber = SalesOrders.SalesOrderNumber
group by Containers.SalesOrderNumber,
Containers.WeightUOM,
SalesOrders.CustomerID,
SalesOrders.SalesOrderID,
SalesOrders.UnitPrice,
SalesOrders.Quantity,
SalesOrders.SalesCommission,
SalesOrders.LatestShipDate,
SalesOrders.PortOfDischarge,
SalesOrders.PlaceOfDelivery,
SalesOrders.LowerTolerancePct,
SalesOrders.UpperTolerancePct,
SalesOrders.Grade;
然后在我的文本框中计算“OpenQty”的总和。
但是,我得到错误“条件表达式中的数据类型不匹配”。
请帮忙。
谢谢您不能将计算字段(在本例中为
WtMt
)用作另一字段计算的一部分。您必须重新使用整个计算
(SalesOrders.Quantity - WtMt) as OpenQty
到
然而,这可能不是唯一的问题。我建议每次运行一个计算字段的查询,以查看哪个字段实际给出了错误。可能GetWeightInMT()函数返回的是空字符串值,在这种情况下,Round()函数将生成该错误。GetWeightInMT()函数不返回值。OpenQty值是正的和负的。这是因为??如果函数总是返回一个数字类型,甚至是一个可以被视为按轮编号()的字符串,例如“1”或“-1”,则不应该是错误的。如果不直接分析项目和调试,这就是我所能提供的所有可能的原因。感谢您的帮助实际上,可以在另一个计算字段中引用计算字段,只是测试以确认这一点。不能在同一查询中引用WHERE或HAVING子句中的计算字段。我不是说表级计算类型字段。谢谢大家的帮助。结果证明我使用了错误的字段进行计算。讨厌的家伙!我应该想到这一点。很高兴你找到了解决办法。
(SalesOrders.Quantity - CInt(Round(GetWeightInMT(Sum([NetWeight]), WeightUOM), 0))) as OpenQty