D365 X++ SQL 查询错误:算术溢出错误解决方法
在 D365 X++ 中执行以下 SQL 查询时出现错误:
select firstonly AmountCurDebit, OffsetLedgerDimension from ledgerJournalTrans
order by createdDateTime desc
where ledgerJournalTrans.Txt == '営業外売上ヘッダID:' + mtxCustOutsideSalesTable.MtxOutsideSalesId + ' ' + salesParm.MtxCustLineDescription;
错误信息如下:
session 365302 (Admin)
SELECT TOP 1 T1.AMOUNTCURDEBIT,T1.OFFSETLEDGERDIMENSION,T1.RECID FROM LEDGERJOURNALTRANS T1 WHERE (((PARTITION=5637144576) AND (DATAAREAID=N'mtx')) AND (TXT=(?+?))) ORDER BY T1.CREATEDDATETIME DESC
[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Arithmetic overflow error converting expression to data type bigint.
Object Server Azure:
仕訳帳明細行 のレコードを選択できません (LedgerJournalTrans)。 SQL データベースによってエラーが出されました。
根据报错信息,可以看出是由于数据类型转换错误导致的算术溢出错误。具体原因可能是 AmountCurDebit 或 OffsetLedgerDimension 列的数据类型与目标列的数据类型不匹配,或者是数据溢出引起的。
解决方法如下:
-
检查表格 ledgerJournalTrans 中 AmountCurDebit 和 OffsetLedgerDimension 列的数据类型,并确保与目标列的数据类型匹配。
-
检查表格 ledgerJournalTrans 中 AmountCurDebit 和 OffsetLedgerDimension 列的数据,确保没有超出目标列数据类型的范围。如果有超出范围的数据,可以考虑调整数据类型或对数据进行修正。
-
如果以上步骤没有解决问题,可以尝试将查询结果限制为更小的数据集,例如使用 TOP 语句选择更少的记录或添加其他筛选条件来减少查询结果的大小。
-
如果问题仍然存在,可能需要更详细地分析数据和查询逻辑,以确定根本原因并进行相应的修复。
原文地址: https://www.cveoy.top/t/topic/ffsg 著作权归作者所有。请勿转载和采集!