如何让查询结果按月显示

panzi667 2013-05-23 08:52:21
有一份合同开始时间为3.10,截止时间为5.7,是横跨3,4,5三个月,其中3月是21天,4月是30天,5月是7天,那如何用SQL语句表达出来呢?
...全文
251 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxfvba 2013-06-04
  • 打赏
  • 举报
回复
真学习了,谢谢!
sqlkxr 2013-05-30
  • 打赏
  • 举报
回复
学习了。谢谢。
sqlkxr 2013-05-30
  • 打赏
  • 举报
回复


select month(dateadd(dd,number,'2013-03-10')),count(1) from master..spt_values where type='p' and dateadd(dd,number,'2013-03-10')<='2013-05-07'
group by month(dateadd(dd,number,'2013-03-10'))
發糞塗牆 2013-05-23
  • 打赏
  • 举报
回复
算出来之后动态行转列,参考:http://bbs.csdn.net/topics/240002706
panzi667 2013-05-23
  • 打赏
  • 举报
回复
谢谢,的确可以获取到每个月的天数,但是这个是多行记录,可以用一行表示吗? 合同编号 3月 4月 5月 001 21 30 7
tomcat 2013-05-23
  • 打赏
  • 举报
回复
引用 3 楼 DBA_Huangzj 的回复:
http://blog.csdn.net/maco_wang/article/details/6279025用这里的函数,获取两个日期间的所有天数,然后进行运算,比如你要统计每个月,那么就count天数,group by的时候只取月那一部分,这样就可以统计月份的天数
CREATE FUNCTION generateTime
    (
      @begin_date DATETIME ,
      @end_date DATETIME
    )
RETURNS @t TABLE ( date DATETIME )
AS 
    BEGIN
        WITH    maco
                  AS ( SELECT   @begin_date AS date
                       UNION ALL
                       SELECT   date + 1
                       FROM     maco
                       WHERE    date + 1 <= @end_date
                     )
            INSERT  INTO @t
                    SELECT  *
                    FROM    maco
            OPTION  ( MAXRECURSION 0 );

        RETURN

    END

go

--测试示例
SELECT  COUNT(1) [执行天数] ,
        MONTH(a.[date]) [月份]
FROM    dbo.generateTime('2013-03-10', '2013-05-07') AS a
GROUP BY MONTH(a.[date])
發糞塗牆 2013-05-23
  • 打赏
  • 举报
回复
http://blog.csdn.net/maco_wang/article/details/6279025用这里的函数,获取两个日期间的所有天数,然后进行运算,比如你要统计每个月,那么就count天数,group by的时候只取月那一部分,这样就可以统计月份的天数
哥眼神纯洁不 2013-05-23
  • 打赏
  • 举报
回复
select month(日期字段),count(1) from 表 where 日期字段 between 3.10 and 5.7 group by month(日期字段)
panzi667 2013-05-23
  • 打赏
  • 举报
回复
现在已知的是合同时间,求每个月份的执行天数。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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