34,592
社区成员
发帖
与我相关
我的任务
分享
-- ----------------------------
-- Table structure for CompanyCg_copy
-- ----------------------------
DROP TABLE [dbo].[CompanyCg_copy]
GO
CREATE TABLE [dbo].[CompanyCg_copy] (
[ID] int NOT NULL IDENTITY(1,1) ,
[companyno] varchar(20) NULL ,
[companyname] varchar(50) NULL ,
[cgcompanyno] varchar(20) NULL ,
[cgcompanyname] varchar(50) NULL ,
[cgje] varchar(50) NULL
)
GO
DBCC CHECKIDENT(N'[dbo].[CompanyCg_copy]', RESEED, 5)
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N'CompanyCg_copy',
'COLUMN', N'ID')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'ID'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'CompanyCg_copy'
, @level2type = 'COLUMN', @level2name = N'ID'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'ID'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'CompanyCg_copy'
, @level2type = 'COLUMN', @level2name = N'ID'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N'CompanyCg_copy',
'COLUMN', N'companyno')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'客户编号'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'CompanyCg_copy'
, @level2type = 'COLUMN', @level2name = N'companyno'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'客户编号'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'CompanyCg_copy'
, @level2type = 'COLUMN', @level2name = N'companyno'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N'CompanyCg_copy',
'COLUMN', N'companyname')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'客户名称'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'CompanyCg_copy'
, @level2type = 'COLUMN', @level2name = N'companyname'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'客户名称'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'CompanyCg_copy'
, @level2type = 'COLUMN', @level2name = N'companyname'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N'CompanyCg_copy',
'COLUMN', N'cgcompanyno')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'参股机构编号'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'CompanyCg_copy'
, @level2type = 'COLUMN', @level2name = N'cgcompanyno'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'参股机构编号'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'CompanyCg_copy'
, @level2type = 'COLUMN', @level2name = N'cgcompanyno'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N'CompanyCg_copy',
'COLUMN', N'cgcompanyname')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'参股机构名称'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'CompanyCg_copy'
, @level2type = 'COLUMN', @level2name = N'cgcompanyname'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'参股机构名称'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'CompanyCg_copy'
, @level2type = 'COLUMN', @level2name = N'cgcompanyname'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description',
'SCHEMA', N'dbo',
'TABLE', N'CompanyCg_copy',
'COLUMN', N'cgje')) > 0)
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'参股金额'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'CompanyCg_copy'
, @level2type = 'COLUMN', @level2name = N'cgje'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'参股金额'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'CompanyCg_copy'
, @level2type = 'COLUMN', @level2name = N'cgje'
GO
-- ----------------------------
-- Records of CompanyCg_copy
-- ----------------------------
SET IDENTITY_INSERT [dbo].[CompanyCg_copy] ON
GO
INSERT INTO [dbo].[CompanyCg_copy] ([ID], [companyno], [companyname], [cgcompanyno], [cgcompanyname], [cgje]) VALUES (N'1', N'A24255737', N'天水市麦积铝门窗厂', N'A24239032', N'靖远塑料薄膜厂', N'500')
GO
GO
INSERT INTO [dbo].[CompanyCg_copy] ([ID], [companyno], [companyname], [cgcompanyno], [cgcompanyname], [cgje]) VALUES (N'2', N'A24239032', N'靖远塑料薄膜厂', N'A24152391', N'静宁县有限责任公司', N'500')
GO
GO
INSERT INTO [dbo].[CompanyCg_copy] ([ID], [companyno], [companyname], [cgcompanyno], [cgcompanyname], [cgje]) VALUES (N'3', N'A2415993X', N'临夏州清真食品有限责任公司', null, null, null)
GO
GO
INSERT INTO [dbo].[CompanyCg_copy] ([ID], [companyno], [companyname], [cgcompanyno], [cgcompanyname], [cgje]) VALUES (N'4', N'A24152391', N'静宁县有限责任公司', N'A24255737', N'天水市麦积铝门窗厂', N'300')
GO
GO
INSERT INTO [dbo].[CompanyCg_copy] ([ID], [companyno], [companyname], [cgcompanyno], [cgcompanyname], [cgje]) VALUES (N'5', N'A24255737', N'天水市麦积铝门窗厂', N'A24152391', N'静宁县有限责任公司', N'500')
GO
GO
SET IDENTITY_INSERT [dbo].[CompanyCg_copy] OFF
GO
-- ----------------------------
-- Indexes structure for table CompanyCg_copy
-- ----------------------------
-- ----------------------------
-- Primary Key structure for table CompanyCg_copy
-- ----------------------------
ALTER TABLE [dbo].[CompanyCg_copy] ADD PRIMARY KEY ([ID])
GO
with cte(companyno,companyname,cgcompanyno,cgcompanyname,cgje)
as
(--父项
select companyno,companyname,cgcompanyno,cgcompanyname,cgje from companycg where companyno = 'A24255737'
union all
--递归结果集中的下级
select t.companyno,t.companyname,t.cgcompanyno,t.cgcompanyname,t.cgje from companycg as t
inner join cte as c on t.companyno = c.cgcompanyno
)
select companyno,companyname,cgcompanyno,cgcompanyname,cgje from cte where cgcompanyno is not null
with cte(companyno,companyname,cgcompanyno,cgcompanyname,cgje, ids)
as
(--父项
select companyno,companyname,cgcompanyno,cgcompanyname,cgje
,convert(varchar(max),','+rtrim(id)+',') as ids
from [CompanyCg_copy] where companyno = 'A24255737'
union all
--递归结果集中的下级
select t.companyno,t.companyname,t.cgcompanyno,t.cgcompanyname,t.cgje
,','+rtrim(t.id)+c.ids
from [CompanyCg_copy] as t
inner join cte as c on t.companyno = c.cgcompanyno
where charindex(','+rtrim(id)+',', c.ids)=0
)
select companyno,companyname,cgcompanyno,cgcompanyname,cgje from cte where cgcompanyno is not null