sql日期補全,sql補全

來源:互聯網
上載者:User

sql日期補全,sql補全

</pre><pre name="code" class="sql">IF OBJECT_ID('TBL')IS NOT NULLDROP TABLE TBLGOCREATE TABLE TBL(日期 DATE)GOINSERT TBLSELECT '2014-09-30' UNION ALLSELECT '2014-10-06'goDECLARE @DATE DATESELECT @DATE=MAX(日期) FROM TBL;WITH TAS(SELECT * FROM TBLUNION ALLSELECT DATEADD(DD,1,A.日期) FROM T AWHERE NOT EXISTS(SELECT * FROM TBL BWHERE B.日期=DATEADD(DD,1,A.日期))AND A.日期<@DATE)SELECT *FROM T ORDER BY 日期



sql server 怎用一條select語句查出表中一段時間每天的某資料之與 (並且補全缺少的日期)主要

select COUNT(*),convert(date,max(日期))
from 表 group by convert(date,日期)
union all
select * from
(select 0 co,convert(varchar(10),dateadd(dd,number,convert(varchar(8),getdate(),120)+'01'),120) as dt
from master..spt_values
where type='P'
and dateadd(dd,number,convert(varchar(8),getdate(),120)+'01')<=dateadd(dd,-1,convert(varchar(8),dateadd(mm,1,getdate()),120)+'01')) c
where dt not in (select convert(date,max(日期)) from 表 group by convert(date,日期) )
將表和日期改為相應的表明和日期列名即可
 
對於一個sql查詢完,補全日期需要協助

根據你的資料,給你個例子,其中的資料類型不一定和你的完全一樣,需要你自己根據你的實際情況去調整:
--建立表--create table [table](dtime datetime, data varchar(10), num smallint)--添加測試資料--insert into [table] select '2002-9-8' ,'data1',0--insert into [table] select '2002-9-10' ,'data1',3--insert into [table] select '2002-9-11' ,'data1',4--測試語句select * from [table]--你需要的效果declare @d table(time datetime)declare @date datetimeset @date='2002-09-07'while @date<='2002-09-12' begin insert @d select @date set @date= dateadd(dd,1,cast(@date as datetime)) endselect convert(varchar(10),time,120) as time, isnull(data, 'data1') as data,isnull(num, 0) as numfrom @d d left join [table] ton convert(varchar(10),dtime,120) = convert(varchar(10),time,120)最終結果:

具體還有什麼其他想法,可以參考我的部落格:
blog.sina.com.cn/s/blog_9f39f0c70102ux87.html
裡面的第五點,標題是"5、按月統計查詢"


 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.