Сообщение #1
05 июня 2018, 16:38
|
Вычисляемые столбцы в graph, pivot
В одном письме трудно описать проблему, но попробую.
Столкнулся с проблемой вычисления столбца вида «столбец C»=столбец B/ столбец C
Какой вариант надо использовать при таком вопросе?
1.case как в примере ниже? (он неправильно выводит результат)
2.Или не использовать pivot и graph для таких отчётов, где используется вычисления некоторых столбцов делением предыдущих между собой? Какой тогда способ? Как это было бы в Qweb?
Столкнулся с проблемой вычисления столбца вида «столбец C»=столбец B/ столбец C
Какой вариант надо использовать при таком вопросе?
1.case как в примере ниже? (он неправильно выводит результат)
2.Или не использовать pivot и graph для таких отчётов, где используется вычисления некоторых столбцов делением предыдущих между собой? Какой тогда способ? Как это было бы в Qweb?
<ls user="api" />.model_cr
def init(self):
'''Create the view'''
tools.drop_view_if_exists(self.env.cr, self._table)
self.env.cr.execute("""
CREATE OR REPLACE VIEW %s AS (
SELECT
CASE WHEN c.id != 0 THEN COUNT(*) ELSE 0 END AS count,
CASE WHEN c.x_kzevent_status IN ('ok', 'wait') THEN COUNT(*) ELSE 0 END AS nbr_ok_kzevent,
CASE WHEN c.stage_id >= '15' THEN COUNT(*) ELSE 0 END AS nbr_agreement,
((CASE WHEN c.x_kzevent_status IN ('ok', 'wait') THEN COUNT(*) ELSE 0 END)/(CASE WHEN c.id != 0 THEN COUNT(*) ELSE NULL END)) as efficiency_kzevent_contact,
((CASE WHEN c.stage_id >= '15' THEN COUNT(*) ELSE NULL END)/(CASE WHEN c.x_kzevent_status IN ('ok', 'wait') THEN COUNT(*) ELSE NULL END)) as efficiency_agreement_kzevent
FROM
"crm_lead" c
LEFT JOIN "crm_stage" stage
ON stage.id = c.stage_id
GROUP BY c.id, stage.name
)""" % (self._table,))