我有一个入库表,现在要从入库表中读出某个月数据并显示到DBGrid中,但是要求DBGrid中显示的日期要每天都有,比如说今天是11月17号,查询11月的入库记录,DBgrid就要如下显示,第一行是字段名,入库表中入库日期对应的字段是rkrq,
入库日期 …… ……
11-01 …… ……
11-02
…………
11-17
但是如果有些天没有入库,例如我这些天只有4号和5号入库了,那么直接从数据库中读取DBGrid就会只显示两行
11-04 …… ……
11-05 …… ……
我怎么把其他的行制作出来呢?本来在数据库中是没有的
入库日期 …… ……
11-01 …… ……
11-02
…………
11-17
但是如果有些天没有入库,例如我这些天只有4号和5号入库了,那么直接从数据库中读取DBGrid就会只显示两行
11-04 …… ……
11-05 …… ……
我怎么把其他的行制作出来呢?本来在数据库中是没有的
declare @date datetime
set @date='2009-02-05'
select [day]=convert(varchar,DATEADD(mm,DATEDIFF(mm,0,@date),0)+number,112)
from master..spt_values
where type='p'
and number< datediff(dd,@date,dateadd(mm,1,@date))
/*
day
20090201
20090202
20090203
20090204
20090205
20090206
20090207
20090208
20090209
20090210
20090211
20090212
20090213
20090214
20090215
20090216
20090217
20090218
20090219
20090220
20090221
20090222
20090223
20090224
20090225
20090226
20090227
20090228
*/
create table tbNumber(id int)
GO
declare @i int
set @i=1
while @i<4001 --4000个应该足够了
begin
insert into tbnumber select @i
set @i=@i+1
end--
declare @s varchar(10)
set @s=left(convert(varchar(10),getdate(),108),8)+'01' --本月首日
select * from tb,tbnumber where dateadd(day,tbnumber.id,cast(@s as datetime))=createtime and tbnumber.id between 1 and 30