为什么没有人给我回!!!为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么
Create Proc InfoProcCustomDefs @TreeCode Nvarchar(200),@DocType Nvarchar(3) As
Declare @FieldName Nvarchar(200),@DisPlyStr Nvarchar(200),@FieldType Nvarchar(200),@FieldSize Nvarchar(200)
Declare @CNull Nvarchar(200),@CNotNull Nvarchar(200)
Declare @tempVar Nvarchar (2000)
create table #Table(
DisplyStr Nvarchar(200) Null,
FieldType Nvarchar(200) Null,
FieldSize Nvarchar(200) Null,
CNull Int Null,
CNotNull Int Null,
DocType Nvarchar(200) Null)Declare curQQQ Cursor For
Select DisplyStr,FieldType,FieldSize,FieldName From InfoSysCustomDefs
Where Treecode=@TreeCode And DocType=@DocType And hideflag=0 Order by No
Open curQQQ
Fetch curQQQ Into @DisplyStr,@FieldType,@FieldSize,@FieldName
While @@FETCH_STATUS=0
Begin
Set @CNull='Select Count(DocID) From InfoSySDocument Where TreeCode='+@TreeCode+'And DocType='+@DocType+'And DelFlag IN (0,4) And'+ @FieldName+'IS Null'
Set @CNotNull='Select Count(DocID) From InfoSySDocument Where TreeCode='+@TreeCode+' And DocType='+@DocType+ 'And DelFlag IN (0,4) And '+@FieldName+'Is Not Null'
Set @tempVar='Insert Into #Table values('+@DisplyStr+','+@FieldType+','+@FieldSize+',('+@CNull+'),('+@CNotNull+'),'+@DocType+')'
exec sp_executesql @tempVar
Fetch curQQQ into @DisplyStr,@FieldType,@FieldType,@FieldName
ENd
close curQQQ
deallocate curQQQ
select * from #Table
drop table #Table
Create Proc InfoProcCustomDefs @TreeCode Nvarchar(200),@DocType Nvarchar(3) As
Declare @FieldName Nvarchar(200),@DisPlyStr Nvarchar(200),@FieldType Nvarchar(200),@FieldSize Nvarchar(200)
Declare @CNull Nvarchar(200),@CNotNull Nvarchar(200)
Declare @tempVar Nvarchar (2000)
create table #Table(
DisplyStr Nvarchar(200) Null,
FieldType Nvarchar(200) Null,
FieldSize Nvarchar(200) Null,
CNull Int Null,
CNotNull Int Null,
DocType Nvarchar(200) Null)Declare curQQQ Cursor For
Select DisplyStr,FieldType,FieldSize,FieldName From InfoSysCustomDefs
Where Treecode=@TreeCode And DocType=@DocType And hideflag=0 Order by No
Open curQQQ
Fetch curQQQ Into @DisplyStr,@FieldType,@FieldSize,@FieldName
While @@FETCH_STATUS=0
Begin
Set @CNull='Select Count(DocID) From InfoSySDocument Where TreeCode='+@TreeCode+'And DocType='+@DocType+'And DelFlag IN (0,4) And'+ @FieldName+'IS Null'
Set @CNotNull='Select Count(DocID) From InfoSySDocument Where TreeCode='+@TreeCode+' And DocType='+@DocType+ 'And DelFlag IN (0,4) And '+@FieldName+'Is Not Null'
Set @tempVar='Insert Into #Table values('+@DisplyStr+','+@FieldType+','+@FieldSize+',('+@CNull+'),('+@CNotNull+'),'+@DocType+')'
exec sp_executesql @tempVar
Fetch curQQQ into @DisplyStr,@FieldType,@FieldType,@FieldName
ENd
close curQQQ
deallocate curQQQ
select * from #Table
drop table #Table
我想:count(*)-count(fieldname)=countnull
count(fieldname)=countnotnull
可以用游标试试