求:SQL语句 具体看图片要求 10

根据表1的两个字段(Area区域和sDate添加记录的日期)统计出某个月所有的天数的各个区域的“添加记录数”。每个月有多少天,统计多少条记录,根据月份自动改变,如果每一天... 根据表1的两个字段(Area 区域 和sDate 添加记录的日期)统计出 某个月所有的天数的 各个区域的 “添加记录数”。
每个月有多少天,统计多少条记录 ,根据月份 自动改变 ,如果 每一天 没有添加记录则 默认 为 “0”,如:
1号2号,,,,28 号 29号,30 号,31号。

SQL 语句 和 存储过程都可以
谢谢。。。。。。。
展开
 我来答
快客如刀
2013-10-17
知道答主
回答量:28
采纳率:0%
帮助的人:9万
展开全部

不知道这样可以不?另外,你第一个表中的日期最好定义为字符串,nvchar的格式可能会好些

追问

非常感谢你的回答,但是 我是想在第二表中输出 某个月份的所有记录 如果没有 也要输出

 area ,日期 次数

如区域一  1号  0    已解决 谢谢 共享

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
太平岁年丰9
2013-10-17 · TA获得超过1231个赞
知道小有建树答主
回答量:1017
采纳率:100%
帮助的人:1085万
展开全部
alter session set nls_date_format='yyyy-mm-dd';
create table area (area varchar2(10),sdate date,col1 varchar2(10),col2 varchar2(10),col3 varchar2(10));
insert into area (area,sdate) values ('区域一',trunc(sysdate-01));
insert into area (area,sdate) values ('区域一',trunc(sysdate-02));
insert into area (area,sdate) values ('区域一',trunc(sysdate-03));
insert into area (area,sdate) values ('区域三',trunc(sysdate-04));
insert into area (area,sdate) values ('区域一',trunc(sysdate-05));
insert into area (area,sdate) values ('区域一',trunc(sysdate-06));
insert into area (area,sdate) values ('区域三',trunc(sysdate-07));
insert into area (area,sdate) values ('区域一',trunc(sysdate-08));
insert into area (area,sdate) values ('区域三',trunc(sysdate-04));
insert into area (area,sdate) values ('区域一',trunc(sysdate-05));
insert into area (area,sdate) values ('区域一',trunc(sysdate-06));
insert into area (area,sdate) values ('区域三',trunc(sysdate-07));
insert into area (area,sdate) values ('区域一',trunc(sysdate-08));
insert into area (area,sdate) values ('区域二',trunc(sysdate-09));
insert into area (area,sdate) values ('区域一',trunc(sysdate-10));
insert into area (area,sdate) values ('区域二',trunc(sysdate-11));
insert into area (area,sdate) values ('区域一',trunc(sysdate-12));
insert into area (area,sdate) values ('区域二',trunc(sysdate-13));
insert into area (area,sdate) values ('区域一',trunc(sysdate-14));
commit;
select to_char(rq,'dd')||'号' "日期",
sum(case when area='区域一' then 1 end) "区域一",
sum(case when area='区域二' then 1 end) "区域二",
sum(case when area='区域三' then 1 end) "区域三"
from area a,(SELECT trunc(sysdate+ROWNUM-30) rq FROM DUAL CONNECT BY ROWNUM <= 62) b
where rq between trunc(sysdate,'mm') and last_day(sysdate)
and a.sdate(+)=b.rq
group by rq order by rq
;
如果要统计其它月份的,自己改一下sql里的sysdate
追问

这个是 Oracle的吧  我的是SQLServer 我写出来了 谢谢 共享

追答
看完整个问题也没看出是sql server
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式