Hi,

We have a pretty complicated query that uses multiple summed fields and I
would like to use SQLFORM.grid to display them. Two situations first I need
to figure out how to translate this query into DAL (unless grid can handle
executesql?), then need to know how to use the sum() like you would with a
normal query.select().

Normal SQL
"""
select to_char(report_date,'yyyy-mm') report_date,distributor_id,
sum(sponsorbonus) sponsorbonus, sum(leadbonus) leadbonus, sum(binarybonus)
binarybonus,
 sum(matchingbonus) matchingbonus, sum(growingbonus) growingbonus,
sum(adviewpayback) adviewpayback, sum(adpackcomm) adpackcomm,
 sum(kvalue_deduction) kvalue_deduction, sum(group_management_fee)
group_management_fee
from bonus_daysummary
where  distributor_id = %(distributor_id)s
group by to_char(report_date,'yyyy-mm'), distributor_id
"""

DAL so far:
    sum_sponsor_bonus = db.bonus_summary.sponsorbonus.sum()
    sum_lead_bonus = db.bonus_summary.leadbonus.sum()
    sum_binary_bonus = db.bonus_summary.binarybonus.sum()
    sum_matching_bonus = db.bonus_summary.matchingbonus.sum()
    sum_growing_bonus = db.bonus_summary.growingbonus.sum()
    sum_adview_payback = db.bonus_summary.adviewpayback.sum()
    sum_ad_pack_comm = db.bonus_summary.adpackcomm.sum()
    sum_kvalue_deduction = db.bonus_summary.kvalue_deduction.sum()
    sum_group_manage_fee = db.bonus_summary.group_management_fee.sum()

    query = db(db.bonus_daysummary.distributor_id == distributor.id)

    monthlyBonusReport= SQLFORM.grid(
            query,  paginate=10, deletable=False, editable=False,
details=False, csv=True, formname='monthlyBonus',
    )
-- 
-- 
Regards,
Bruce Wade
http://ca.linkedin.com/in/brucelwade
http://www.wadecybertech.com
http://www.warplydesigned.com
http://www.fitnessfriendsfinder.com

Reply via email to