我要对一张表的数据根据日期进行统计:
sql语句:
select count(s.id) as total,s.ddate from SaleOrderQ s group by s.ddate order by ddate显示:
111 2009-01-01 00:00:00.000
49 2009-01-02 00:00:00.000
12 2009-01-03 00:00:00.000
3 2009-01-05 00:00:00.000
3 2009-01-06 00:00:00.000
5 2009-01-07 00:00:00.000
6 2009-01-08 00:00:00.000
1 2009-01-09 00:00:00.000
10 2009-01-12 00:00:00.000但中间的日期有没有输入的比如:2009-01-04,2009-01-10,2009-01-11,我想把这些没有输入的日期也用sql显示出来,统计的数量为0,应该如何写。
注意:需要用sql语句,而非创建领时表啊,动态sql啊,因为我只有对数据库读取数据的权限,其他什么都没有。
急需!!!!!
sql语句:
select count(s.id) as total,s.ddate from SaleOrderQ s group by s.ddate order by ddate显示:
111 2009-01-01 00:00:00.000
49 2009-01-02 00:00:00.000
12 2009-01-03 00:00:00.000
3 2009-01-05 00:00:00.000
3 2009-01-06 00:00:00.000
5 2009-01-07 00:00:00.000
6 2009-01-08 00:00:00.000
1 2009-01-09 00:00:00.000
10 2009-01-12 00:00:00.000但中间的日期有没有输入的比如:2009-01-04,2009-01-10,2009-01-11,我想把这些没有输入的日期也用sql显示出来,统计的数量为0,应该如何写。
注意:需要用sql语句,而非创建领时表啊,动态sql啊,因为我只有对数据库读取数据的权限,其他什么都没有。
急需!!!!!
解决方案 »
- SQL 查询语句请教 2(由于无法修改帖子,把完整图和结果帖在此)
- 哪些系统表是SQL SERVER的常用表?
- 请问如何把oracle中的decode转成SQL中的语句
- 未能找到 ID 为 104 的数据库。可能该数据库尚未激活,也可能正在转换过程中
- 想把 表A 里的ID 替换成 表B里的NAME,实在搞不定了,大家帮忙指点一下
- 这蛋疼的问题,可以说是一种无中生有的技术=============纠结当疼中
- 在SQL2005中 如何实现数据分页?????????
- 再发一次,列更新为连续的号...
- 我将一个导入数据的命令保存为vb的bas包,怎么看?
- 问大家一个比较麻烦的问题,麻烦大家了;每满足一定条件就批量增加数据记录问题
- 100分求一个数据库优化方法
- 求一SQL语句,小弟初学
declare @T table(ddate datetime)
insert @T select '20090101'
insert @T select '20090105'
declare @MinDate datetime,@MaxDate datetime
select @MinDate=min(ddate),@MaxDate=max(ddate) from @T
;with Date
as
(select @MinDate as Date
union all
select Date+1 from Date where Date<@MaxDate)
select
a.Date,count(b.ddate) as [count]
from
Date a
left join
@T b on a.Date=b.ddate
group by a.Date
(1 個資料列受到影響)(1 個資料列受到影響)
Date count
----------------------- -----------
2009-01-01 00:00:00.000 1
2009-01-02 00:00:00.000 0
2009-01-03 00:00:00.000 0
2009-01-04 00:00:00.000 0
2009-01-05 00:00:00.000 1(5 個資料列受到影響)
declare @MinDate datetime
declare @T table(dt datetime)
select @MaxDate = max(n4), @MinDate= min(n4) from dbo.SaleOrderQ while @MinDate<=@MaxDate
begin
insert into @T(dt,cout) values(@MinDate,0)
set @MinDate=@MinDate+1
end求出这个集合,然后和你用的那个集合进行连接,求出你的结果