【库存云巡检】检查最近一次关账的库存余额是否正确,报SqlDateTime 溢出原创
金蝶云社区-fengyj
fengyj
0人赞赏了该文章 207次浏览 未经作者许可,禁止转载编辑于2024年04月09日 20:09:30

【库存云巡检】-【检测项名称为】:检查最近一次关账的库存余额是否正确。巡检结果是:出错结果详情如下:System.Data.SqlTypes.SqlTypeException: SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间


堆栈信息如下:

2024-04-08 15:15:31,083 [338] ERROR - HS - SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。

System.Data.SqlTypes.SqlTypeException: SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。

   在 System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)

   在 System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)

   在 System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)

   在 System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping)

   在 System.Data.Common.DbDataAdapter.Update(DataTable dataTable)

   在 Kingdee.BOS.App.Data.Sql.SqlDatabase.InsertWihtMultiRowsNoTrans(DataTable table, SqlCommand cmd)

   在 Kingdee.BOS.App.Data.Sql.SqlDatabase.CopyDataToDestinationNoTrans(DbCommand cmd, DataTable table)

   在 Kingdee.BOS.App.Data.Sql.SqlDatabase.BulkInsertsNoTrans(DbCommand cmd, DataTable dt)

   在 Kingdee.BOS.App.Data.Sql.SqlDatabase.BulkCopyNoTransaction(DbCommand cmd, DataTable dt)

   在 Kingdee.BOS.App.Data.DBUtils.BulkCopyNoTransaction(Context ctx, String CreateSql, DataTable dt)

   在 Kingdee.BOS.App.Data.DBUtils.BulkCopyNoTransaction(Context ctx, DataTable dt)

   在 Kingdee.K3.FIN.HS.PAT.App.Core.DAL.PatCheckResultEntity.BatchAdd(Context ctx, List`1 chkResulList)

   在 Kingdee.K3.FIN.HS.PAT.App.Core.Patrol.MainFlow.BatchAdd(Context ctx, PatCheckResultDal resDal, PatCheckResultHead headDal, PatCheckResultEntity enDal, PatrolCommonResult item, PatCheckResult PatCheckResultModel)




处理方案:

           报这种错误可能是 库存余额表存在重复库存维度数据导致,需要把重复记录合并,同时删除其他重复记录,保留一条。

         查找重复记录:

select FCOMBINEID,FPRODUCEDATE,FEXPIRYDATE,FMTONO,FPROJECTNO,FBALDATE from T_STK_INVBAL group by FCOMBINEID,FPRODUCEDATE,FEXPIRYDATE,FMTONO,FPROJECTNO,FBALDATE
having count(1)>1

          合并重复记录的各项数量值,累加到一起:

select *,FBASEBEGQTY '期初数量(基本单位)',FBASERECEIVEQTY '收入数量(基本单位)',FBASESENDQTY '发出数量(基本单位)',FBASEENDQTY '期末数量(基本单位)',
FSECBEGQTY '期初数量(辅单位)',FSECRECEIVEQTY '收入数量(辅单位)',FSECSENDQTY '发出数量(辅单位)',FSECENDQTY '期末数量(辅单位)' 
from T_STK_INVBAL where FCOMBINEID='' and FBALDATE=''

          保留合并后的记录,其他重复记录删除:

delete from T_STK_INVBAL where FID in(XXXX)

图标赞 0
0人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!