码迷,mamicode.com
首页 > 数据库 > 详细

sql

时间:2015-06-23 19:46:03      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

 

技术分享
CREATE TABLE [dbo].[testtb](
    [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](
    [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_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



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

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[testtb3] ADD  CONSTRAINT [DF_testtb3_Sonum]  DEFAULT (‘‘FOR [Sonum]
GO

ALTER TABLE [dbo].[testtb3] ADD  CONSTRAINT [DF_testtb3_ItemNum]  DEFAULT (‘‘FOR [ItemNum]
GO

ALTER TABLE [dbo].[testtb3] ADD  CONSTRAINT [DF_testtb3_ItemQty]  DEFAULT ((0)) FOR [ItemQty]
GO

ALTER TABLE [dbo].[testtb3] ADD  CONSTRAINT [DF_testtb3_SoArea]  DEFAULT (‘‘FOR [SoArea]
GO



CREATE TABLE [dbo].[AreaDetail](
    [ID] [int] IDENTITY(1,1NOT NULL,
    [areaid] [varchar](5NOT NULL,
    [Emtry] [char](10NOT NULL
ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[AreaDetail] ADD  CONSTRAINT [DF_AreaDetail_areaid]  DEFAULT (‘‘FOR [areaid]
GO

ALTER TABLE [dbo].[AreaDetail] ADD  CONSTRAINT [DF_AreaDetail_Emtry]  DEFAULT (YFOR [Emtry]
GO






insert into testtb values(SO1,Item1001,2000,‘‘)
insert into testtb values(SO1,Item1002,600,‘‘)
insert into testtb values(SO2,Item1003,3500,‘‘)
insert into testtb values(SO2,Item1004,1400,‘‘)
insert into testtb values(SO2,Item1005,1000,‘‘)
insert into testtb values(SO3,Item1006,7500,‘‘)

insert into testtb3 values(SO1,Item1001,2000,A1)
insert into testtb3 values(SO1,Item1002,400,A1)
insert into testtb3 values(SO1,Item1002,200,A2)
insert into testtb3 values(SO2,Item1003,2400,A3)
insert into testtb3 values(SO2,Item1003,1100,A4)
insert into testtb3 values(SO2,Item1004,1300,A4)
insert into testtb3 values(SO2,Item1004,100,A5)
insert into testtb3 values(SO2,Item1005,1000,A5)
insert into testtb3 values(SO3,Item1006,2400,A6)
insert into testtb3 values(SO3,Item1006,2400,A7)
insert into testtb3 values(SO3,Item1006,2400,A8)
insert into testtb3 values(SO3,Item1006,300,A9)



insert into AreaDetail(areaid,Emtry) values(A1,Y)
insert into AreaDetail(areaid,Emtry) values(A2,Y)
insert into AreaDetail(areaid,Emtry) values(A3,Y)
insert into AreaDetail(areaid,Emtry) values(A4,Y)
insert into AreaDetail(areaid,Emtry) values(A5,Y)
insert into AreaDetail(areaid,Emtry) values(A6,Y)
insert into AreaDetail(areaid,Emtry) values(A7,Y)
insert into AreaDetail(areaid,Emtry) values(A8,Y)
insert into AreaDetail(areaid,Emtry) values(A9,Y)

select * from testtb
select * from testtb3
select * from AreaDetail
View Code

 

 

 

 

 

技术分享
--select * from testtb
--
select * from testtb3
--
select * from AreaDetail

declare @i int
declare @AreaId varchar(5)
declare @Sonum nvarchar(1000
declare Cursor_DBname cursor for 
    select distinct sonum from testtb 
open Cursor_DBname
fetch next from Cursor_DBname into @Sonum
while(@@FETCH_STATUS = 0
begin 

------第二层循环start----------
    set @i=1
    while @i < (select count(*from testtb where Sonum =@Sonum
    begin 
        
        select TOP 1 @AreaId=areaid from AreaDetail WHERE Emtry=Y ORDER BY ID
        
        --将数据插入到testtb2,目的是变成testtb3
        
        update AreaDetail set Emtry=N where areaid=@AreaId--填充区域后,要将它变成非空状态
        
        
        
    break
    set @i=@i+1
    end
----第二层循环-End-----------



    fetch next from Cursor_DBname into @Sonum 
end 
close Cursor_DBname
DEALLOCATE Cursor_DBname
View Code

 

sql

标签:

原文地址:http://www.cnblogs.com/Snowfun/p/4595875.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!