zoukankan      html  css  js  c++  java
  • 将数据以某个单位进行拆分

    将数据以2000为单位对表数据进行拆分

    创建表和插入数据

    CREATE TABLE [dbo].[testtb](
        [id] [int] IDENTITY(1,1NOT NULL,
        [Sonum] [varchar](10NULL,
        [ItemNum] [varchar](30NULL,
        [ItemQty] [int] NULL,
        [SoArea] [varchar](30NULL
    ON [PRIMARY]

    GO

    SET ANSI_PADDING OFF
    GO

    ALTER TABLE [dbo].[testtb] ADD  CONSTRAINT [DF_testtb_Sonum]  DEFAULT (''FOR [Sonum]
    GO

    ALTER TABLE [dbo].[testtb] ADD  CONSTRAINT [DF_testtb_ItemNum]  DEFAULT (''FOR [ItemNum]
    GO

    ALTER TABLE [dbo].[testtb] ADD  CONSTRAINT [DF_testtb_ItemQty]  DEFAULT ((0)) FOR [ItemQty]
    GO

    ALTER TABLE [dbo].[testtb] ADD  CONSTRAINT [DF_testtb_SoArea]  DEFAULT (''FOR [SoArea]
    GO



    CREATE TABLE [dbo].[testtb2](
        [id] [int] NULL,
        [Sonum] [varchar](10NULL,
        [ItemNum] [varchar](30NULL,
        [ItemQty] [int] NULL,
        [SoArea] [varchar](30NULL
    ON [PRIMARY]

    GO

    SET ANSI_PADDING OFF
    GO

    ALTER TABLE [dbo].[testtb2] ADD  CONSTRAINT [DF_testtb2_id]  DEFAULT ((0)) FOR [id]
    GO

    ALTER TABLE [dbo].[testtb2] ADD  CONSTRAINT [DF_testtb2_Sonum]  DEFAULT (''FOR [Sonum]
    GO

    ALTER TABLE [dbo].[testtb2] ADD  CONSTRAINT [DF_testtb2_ItemNum]  DEFAULT (''FOR [ItemNum]
    GO

    ALTER TABLE [dbo].[testtb2] ADD  CONSTRAINT [DF_testtb2_ItemQty]  DEFAULT ((0)) FOR [ItemQty]
    GO

    ALTER TABLE [dbo].[testtb2] ADD  CONSTRAINT [DF_testtb2_SoArea]  DEFAULT (''FOR [SoArea]
    GO



     truncate table testtb
     truncate table testtb2

    insert into testtb(Sonum,ItemNum,ItemQty,SoArea) values('SO1','Item1001','2000','')
    insert into testtb(Sonum,ItemNum,ItemQty,SoArea) values('SO1','Item1002','600','')
    insert into testtb(Sonum,ItemNum,ItemQty,SoArea) values('SO2','Item1003','3500','')
    insert into testtb(Sonum,ItemNum,ItemQty,SoArea) values('SO2','Item1004','1400','')
    insert into testtb(Sonum,ItemNum,ItemQty,SoArea) values('SO2','Item1005','1000','')
    insert into testtb(Sonum,ItemNum,ItemQty,SoArea) values('SO3','Item1006','4099','')
    select * from testtb
    select * from testtb2
    View Code

    执行语句

     insert into  testtb2  select * from testtb  --先备份testtb的数据
     
    while exists(select * from testtb where ItemQty>2000)--1346
     begin
         declare  @tb01 table(ID int);
         insert into  @tb01(ID) select ID from testtb where ItemQty>2000;
         select * from @tb01  ------1346
         insert into testtb    (    Sonum,ItemNum,ItemQty,SoArea)
            select Sonum,ItemNum,2000,SoArea from testtb   where ID in (select ID from @tb01); ---将大于1000的数量再插入到表里面

         update testtb set ItemQty=(ItemQty-2000where ID in (select ID from @tb01); ---对大于1000的物料数量自动减1000
         delete from  @tb01;
     end
     
     
    select * from testtb order by sonum,ItemNum
    select * from testtb2 
    View Code
  • 相关阅读:
    如何查看微信公众号的历史文章(微信订阅号查看历史消息)
    微信服务号有福啦 每月可以微信群发4次
    欲提高微信图文转化率 需学点如何吊胃口
    只需按一下空格键就可以标注 不用众里寻他千百度
    如何让你的微信图文转化率达到300%
    是智能手机推动windows xp系统停止服务吗
    响应式js幻灯片代码一枚
    微信公众平台回复链接可以直接访问,但不能是锚文字链接<a>标签
    如何用腾讯电脑管家备份微信聊天记录
    android版微信5.2.1更新 支持微信聊天记录备份到电脑上
  • 原文地址:https://www.cnblogs.com/Snowfun/p/4613305.html
Copyright © 2011-2022 走看看