求一sql语句,做报表的。

china_ssl 2012-07-27 10:28:44
比如我表里面有哪一天盈利了多少,
我要做的是统计一年12个月每个月盈利了多少。
还有一年365天每天盈利了多少,其中有些天数是没有数据的,但是在表格中也要有,也就是说在数据库中没有那一天的数据,但是在我最终生成的表格中也要有。

然后还有一点就是由于周末休息,所以要去掉周末。就这样求大牛帮忙。

再说一句,大牛们别看我结贴率不高,其实我每个贴都结了的,不信大牛们可以去看,我有两个帖子完全没法结啊,都没一人答道我想送分也送不了啊。。。。
...全文
168 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
china_ssl 2012-07-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

那就在access里面创建一个包含366个日期的表 可以作为一个基础白表来用
可以只写包含月,日 如'01-01' 这样更通用

以后有类似的查询 就都用它来做
[/Quote]
恩,谢谢了,因为要可以查很多年所以还是参考http://topic.csdn.net/t/20051027/10/4353387.html这里的,可以先创建一个表再删除。

谢谢大家了。
撩天槌 2012-07-27
  • 打赏
  • 举报
回复
那就在access里面创建一个包含366个日期的表 可以作为一个基础白表来用
可以只写包含月,日 如'01-01' 这样更通用

以后有类似的查询 就都用它来做
老白猫 2012-07-27
  • 打赏
  • 举报
回复
那就麻烦了 access貌似不支持临时表的吧 怎么解决的我没研究过。。。
你们业务怎么不用大型的数据库呢
临时表可以creat table建立 也可以直接select (列名1、。。) into #name from ... where 0=1 来建立
等大神来解答
china_ssl 2012-07-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

嗯 可以建个临时表 像楼上的原理插入包含一年每天的记录 与你自己的表左连接 没有的数据自然空了
[/Quote]

因为我用的是access数据库,这个也可以先建一个临时表吗,可以可以告诉我一下建临时表的语法?
老白猫 2012-07-27
  • 打赏
  • 举报
回复
不客气 左连接后自然就会有了 然后你select临时表的内容 显示到报表里就好了
china_ssl 2012-07-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

SQL code

;with cte as
(
select cast('2012-01-01' as datetime) date
union all
select dateadd(day,1,cte.date) from cte where year(dateadd(day,1,cte.date))=2012
)
select * from cte
left j……
[/Quote]

谢谢th199了,我感觉你写的这个对我应该是很有用,但是我对SQL不是太懂只知道简单的用法,你可以帮我解释下吗?
老白猫 2012-07-27
  • 打赏
  • 举报
回复
嗯 可以建个临时表 像楼上的原理插入包含一年每天的记录 与你自己的表左连接 没有的数据自然空了
china_ssl 2012-07-27
  • 打赏
  • 举报
回复
主要是即使数据库中没有的,在最终报表中也要有,比如数据库中没有2012-03-12这一天的销售记录,但是在我生成的报表中也是要有的。谢谢fengqi1314的回答。
撩天槌 2012-07-27
  • 打赏
  • 举报
回复

;with cte as
(
select cast('2012-01-01' as datetime) date
union all
select dateadd(day,1,cte.date) from cte where year(dateadd(day,1,cte.date))=2012
)
select * from cte
left join ......
option (maxrecursion 1000)


--先生成一个包含全年366个日期的cte,然后left join你需要的内容
十三门徒 2012-07-27
  • 打赏
  • 举报
回复
看了半天没看懂 明明库里面没有数据,表格是有什么?是都显示0么?
周末休息的话,你周末不就不存在盈利么?不知道楼主到底啥意思
china_ssl 2012-07-27
  • 打赏
  • 举报
回复
恩,主要是“其中有些天数是没有数据的,但是在表格中也要有,也就是说在数据库中没有那一天的数据,但是在我最终生成的表格中也要有。”
老白猫 2012-07-27
  • 打赏
  • 举报
回复
有些天数没数据是不是空值啊 那计算每个月盈利就直接都加起来就可以啊
不要周末的记录可以在语句中加个条件判断 dw的数值判断吧
http://blog.csdn.net/kangsoft/article/details/289107

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧