技术答疑.常用SQL.更新单据体序号

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

技术答疑.常用SQL.更新单据体序号

【应用场景】

单据体先有数据,后启用序号列,新的数据行会自动刷新序号,而历史数据是不会自动刷新序号的,需要手动刷新。

下面以流程配置中心为例,演示如何使用SQL脚本刷新序号列的数据。

单据体启用序号列:

上传图片

历史数据,序号列全是0:

上传图片




【实现步骤】

<1>登录星空数据中心所在数据库服务器,执行以下SQL刷新序号列数据。

-- 更新单行分录的单据体的序号
UPDATE  T_WF_PRCLAUNCHCONFIG
SET     FSEQ = 1
WHERE   FTMPID IN ( SELECT  FTMPID
                    FROM    T_WF_PRCLAUNCHCONFIG
                    GROUP BY FTMPID
                    HAVING  ( COUNT(*) = 1 ) )

                    
-- 更新多行分录的单据体的序号(拷贝此查询语句生成的SQL并执行,即可实现单据体序号的刷新)
-- SET     a.FSEQ = b.ROWID -- 完全覆盖
-- SET     a.FSEQ = CASE WHEN a.FSEQ=0 THEN b.ROWID ELSE a.FSEQ END -- 仅更新值等于0的序号
SELECT  'UPDATE  a
SET     a.FSEQ = b.ROWID
FROM    T_WF_PRCLAUNCHCONFIG a
        JOIN ( SELECT   ROW_NUMBER() OVER ( ORDER BY FTMPDETAILID ) AS ROWID ,
                        *
               FROM     T_WF_PRCLAUNCHCONFIG
               WHERE    FTMPID = '+CAST(FTMPID AS VARCHAR(50))+'
             ) b ON a.FTMPDETAILID = b.FTMPDETAILID'
                    FROM    T_WF_PRCLAUNCHCONFIG
                    GROUP BY FTMPID
                    HAVING  ( COUNT(*) > 1 )
              
                    
/*
-- 更新序号示例SQL:
UPDATE  a
SET     a.FSEQ = b.ROWID
FROM    T_WF_PRCLAUNCHCONFIG a
        JOIN ( SELECT   ROW_NUMBER() OVER ( ORDER BY FTMPDETAILID ) AS ROWID ,
                        *
               FROM     T_WF_PRCLAUNCHCONFIG
               WHERE    FTMPID = 100002
             ) b ON a.FTMPDETAILID = b.FTMPDETAILID
*/

上传图片

---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

技术答疑.常用SQL.更新单据体序号

【应用场景】单据体先有数据,后启用序号列,新的数据行会自动刷新序号,而历史数据是不会自动刷新序号的,需要手动刷新。下面以流程配置中...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息