日 期 渠道ID 结算规则 I P P V U V 单价
2011-10-20 100012 IP 1000 1000 1000 32
2011-10-21 100012 IP 1000 1000 1000 32
2011-10-22 100012 IP 1000 1000 1000 32
2011-10-23 100012 IP 1000 1000 1000 33
2011-10-24 100012 IP 1000 1000 1000 33
2011-10-25 100012 IP 1000 1000 1000 33
2011-10-26 100012 IP 1000 1000 1000 33
2011-10-20 100013 PV 1000 1000 1000 43
2011-10-21 100014 UV 1000 1000 1000 34
2011-10-22 100015 PV 1000 1000 1000 534
2011-10-23 100016 UV 1000 1000 1000 43
上面是一个数据表,设的时间与渠道ID为联合主键,我想做一个报表,如果同一渠道ID单价相同,则安结算规则指向,把他们的数据对应相加,比如如果是IP就把IP相加,当然,如果ID和价格都不同就不做任何操作,列出结算规则对应的数据就行,我想求一个这样的方法,不知道怎样实现?效果像下面一样
查询2011-10-20到2011-10-26的所有数据。渠道ID IP PV UV 单价 
100012 3000 NULL NULL 32
100012 5000 NULL NULL 33
100013 NULL 1000 NULL 43
100014 NULL NULL 1000 34
100015 NULL 1000 NULL 534
100016 NULL NULL 1000 43
还请帮忙看一下,怎么实现逻辑,没有相加的数据要以他当时本身的单价为准
???

解决方案 »

  1.   

    怎以没有人回答我啊日 期          渠道ID I P 单价
    2011-10-20 100012 1000 32
    2011-10-21 100012 1000 32
    2011-10-22 100012 1000 32
    2011-10-23 100012 1000 33
    2011-10-24 100012 1000 33
    2011-10-25 100012 1000 33
    2011-10-26 100012 1000 33
    2011-10-20 100013 1000 43
    2011-10-21 100014 1000 34上面是一个数据表,设的时间与渠道ID为联合主键,我想做一个报表,如果同一渠道ID单价相同,则相加,当然,如果ID和价格都不同就不做任何操作,列出结算规则对应的数据就行,我想求一个这样的方法,不知道怎样实现?效果像下面一样
    查询2011-10-20到2011-10-26的所有数据。渠道ID IP 单价  
    100012 3000 32
    100012 5000 33
    100013 1000 43
    100014 1000 34简化一下问题,只要此问题能解决,后面的我就知道怎么计算了
      

  2.   

    把你的数据用php形式帖出来,工作忙,没时间这样把这么多的数据打上去。
      

  3.   

    日 期        渠道ID  I P  单价
    2011-10-20 100012  1000  32
    2011-10-21 100012  1000  32
    2011-10-22 100012  1000  32
    2011-10-23 100012  1000  33
    2011-10-24 100012  1000  33
    2011-10-25 100012  1000  33
    2011-10-26 100012  1000  33
    2011-10-20 100013  1000  43
    2011-10-21 100014  1000  34查询2011-10-20到2011-10-26的所有数据。渠道ID IP  单价   
    100012 3000  32
    100012 5000  33
    100013 1000  43
    100014 1000  34
      

  4.   

    select 渠道ID, sum(IP) as IP, 单价 from tbl_name group by 渠道ID, 单价