mysql - SQL statement for GROUP BY -
i stucked 1 sql select statement.
this output/result sql statement below:
what need: need have columns assignedvouchersnumber , usedvouchersnumber in 1 row msisdn. example if can see "msisdn" 723709656 there 2 rows now.. 1 assignedvouchersnumber = 1 , second assignedvouchersnumber = 1 too.
but need have in 1 row assignedvouchersnumber = 2. problem?
select eu.msisdn, eu.id userid, sum(case ev.voucherstate when '1' 1 else 0 end) assignedvouchersnumber, sum(case ev.voucherstate when '2' 1 else 0 end) usedvouchersnumber, ev.extra_offer_id, ev.create_time, ev.use_time, ev.id voucherid, ev.voucherstate extra_users eu join (select sn.msisdn telcislo, stn.numberid stats_number sn join stats_target_number stn on ( sn.numberid = stn.numberid ) stn.targetid = 1) xy on eu.msisdn = xy.telcislo join extra_vouchers ev on ( eu.id = ev.extra_user_id ) ev.create_time between '2012-07-23 00:00:00' , '2013-08-23 23:59:59' , ev.use_time <= '2013-08-23 23:59:59' , ev.use_time >= '2012-07-23 00:00:00' , ev.voucherstate in ( 1, 2 ) , ifnull(ev.extra_offer_id in( 2335, 3195, 30538 ), 1) group eu.msisdn, ev.extra_offer_id, ev.voucherstate order eu.msisdn asc
you have 2 different extra_offer_id same msisdn , vouchersnumber. thats why 2 rows.
Comments
Post a Comment