27,582
社区成员




select *
from r20190102 r
where
INSTR(r.VC_MARKS,'P')>0
and INSTR(r.c_category,'1')>0
and INSTR(r.n_issue_type,'5')>0
DECLARE @sql NVARCHAR(MAX)
SELECT @sql=ISNULL(@sql,'')+CASE WHEN sv.number=1 THEN '' ELSE '
UNION ALL
' END +
'SELECT *
from r201901'+RIGHT('00'+LTRIM(sv.number),2)+' r
where
INSTR(r.VC_MARKS,''P'')>0
and INSTR(r.c_category,''1'')>0
and INSTR(r.n_issue_type,''5'')>0'
FROM [master].dbo.spt_values AS sv
WHERE sv.[type]='P' AND sv.number BETWEEN 1 AND 31
--打印不全是因为有限制,实际是没有问题的
PRINT @sql
EXEC (@sql)
declare @date datetime='2019-01-01',@enddate datetime='2019-1-31'
declare @tablestr nvarchar(100)='',@sql nvarchar(max)
if object_id('tempdb..#data') is not null drop table #data;
select top 0 * into #data from r20190101
while @date<=@enddate begin
set @sql='
insert into #data
select *
from r'+convert(nvarchar(12),@date,112)+' r
where
INSTR(r.VC_MARKS,''P'')>0
and INSTR(r.c_category,''1'')>0
and INSTR(r.n_issue_type,''5'')>0
'
exec (@sql)
set @date=dateadd(day,1,@date)
end
select * from #data