首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

根据指定的年和月查询数据,该怎么解决

2012-03-09 
根据指定的年和月查询数据表HKBNanji和Suzhou均为int类型ID Ntime Nanji Suzhou1 2012-1-10 20 302 2012-1

根据指定的年和月查询数据
表HKB
 Nanji和Suzhou均为int类型


ID Ntime Nanji Suzhou

1 2012-1-10 20 30

2 2012-1-10 24 18

3 2012-1-18 30 12

4 2012-1-19 22 32


...

31 2012-1-31 40 32


(Myday是日期 天,UNO是数量 )
要得到的结果是

UNAME Myday UNO  

Nanji 1 0
...

Nanji 10 44  

Nanji 18 30

Nanji 19 22

...

Nanji 31 40  
 
Suzhou 1 0

...

Suzhou 10 48

...

Suzhou 31 32



[解决办法]

SQL code
if not object_id('Tempdb..#test') is null    drop table #testGoCreate table #test([ID] int,[Ntime] Datetime,[Nanji] int,[Suzhou] int)Insert #testselect 1,'2012-1-10',20,30 union allselect 2,'2012-1-10',24,18 union allselect 3,'2012-1-18',30,12 union allselect 4,'2012-1-19',22,32 union allselect 31,'2012-1-31',40,32Godeclare @dt varchar(7)set @dt='2012-01'select [UNAME],       dateadd(day,number,@dt+'-01')[Ntime]into #tfrom master..spt_values ,(select 'Nanji'[UNAME]                           union all                          select 'Suzhou')bwhere type='P' and number<day(dateadd(day,-1,convert(char(07),dateadd(month,1,@dt+'-01'),120)+'-01'))order by [UNAME],[Ntime]goselect a.[UNAME],       day(a.[Ntime])[Ntime],       isnull(b.UNO,0)UNOfrom #t a left join(Select [Ntime],'Nanji' [UNAME],sum([Nanji])UNO from #test group by [Ntime] union all Select [Ntime],'SUzhou'[UNAME],sum([Suzhou]) from #test group by [Ntime])bon a.[UNAME]=b.[UNAME] and a.[Ntime]=b.[Ntime]godrop table #T/*UNAME  Ntime       UNO------ ----------- -----------Nanji  1           0Nanji  2           0Nanji  3           0Nanji  4           0Nanji  5           0Nanji  6           0Nanji  7           0Nanji  8           0Nanji  9           0Nanji  10          44Nanji  11          0Nanji  12          0Nanji  13          0Nanji  14          0Nanji  15          0Nanji  16          0Nanji  17          0Nanji  18          30Nanji  19          22Nanji  20          0Nanji  21          0Nanji  22          0Nanji  23          0Nanji  24          0Nanji  25          0Nanji  26          0Nanji  27          0Nanji  28          0Nanji  29          0Nanji  30          0Nanji  31          40Suzhou 1           0Suzhou 2           0Suzhou 3           0Suzhou 4           0Suzhou 5           0Suzhou 6           0Suzhou 7           0Suzhou 8           0Suzhou 9           0Suzhou 10          48Suzhou 11          0Suzhou 12          0Suzhou 13          0Suzhou 14          0Suzhou 15          0Suzhou 16          0Suzhou 17          0Suzhou 18          12Suzhou 19          32Suzhou 20          0Suzhou 21          0Suzhou 22          0Suzhou 23          0Suzhou 24          0Suzhou 25          0Suzhou 26          0Suzhou 27          0Suzhou 28          0Suzhou 29          0Suzhou 30          0Suzhou 31          32(62 row(s) affected)*/ 

热点排行