报表数据显示如下
月份   金额  天数
4      100  8
4      200  8
4      300  8
5      600  20
5      500  20
5      300  20文字描述:
4月份总共只有8天有数据,5月份中有20天有数据,我现在想得到4月份和5月份的天数之和,28天,怎么得到?
用sum函数,得到结果是:8+8+8+20+20+20 = 84天,这样的数据明显不对的。应该用什么办法呢?

解决方案 »

  1.   

    left join (select sum(天数) from  table group by 天数) on 1=1
      

  2.   

    没有理解你的意思。 group by再求和,得到的结果不还是84吗?这个业务是这样子的,4月份总共有8天用到了XX系统,5月份总共有20天用到了XX系统。我想在报表显示之后,取到4月份与5月份总共用到的天数,也就是1#上的8+20 = 28天。
      

  3.   

    把月份和天数放在一起分组求和弄成临时表,然后再与 这张表**连在一起
    eg: 
    select Month,Money,SumDay from Table  left join (
    select Month as N_Month,Sum(Days)as SumDay from Table group by Month)as T1
    on Table.Month=T1.N_Month
      

  4.   

    select Month,Money,SumDay from Table  left join (
    select Month as N_Month,Sum(Days)as SumDay from Table group by N_Month)as T1
    on Table.Month=T1.N_Month
      

  5.   

    select sum(天数 ) from (select 月份,天数 gropy by 月份,天数) as t
      

  6.   

    SELECT SUM(DAYCOUNT) FROM (SELECT SUM(天数)/COUNT(月份) AS DAYCOUNT FROM 表 GROUP BY 月份)
    月份和天数必须是值相等,否则变成平均天数
      

  7.   

    SELECT SUM(DAYCOUNT) FROM (SELECT SUM(天数)/COUNT(月份) AS DAYCOUNT FROM 表 GROUP BY 月份) AS TMP