21 lines
812 B
SQL
21 lines
812 B
SQL
SELECT
|
|
date_trunc('day', po.create_date) AS giorno,
|
|
COUNT(po.id) AS scontrini,
|
|
ROUND(AVG(po.amount_total), 2) AS scontrino_medio,
|
|
ROUND(SUM(po.amount_total), 2) AS fatturato,
|
|
ROUND(SUM(COALESCE(po.amount_tax, 0)), 2) AS tasse,
|
|
ROUND(SUM(pol_tot.costo_reale), 2) AS costi,
|
|
ROUND(SUM(po.amount_total) - SUM(pol_tot.costo_reale) - SUM(COALESCE(po.amount_tax, 0)), 2) AS margine,
|
|
ROUND(SUM(CASE WHEN po.state = 'cancel' THEN po.amount_total ELSE 0 END), 2) AS rimborsi
|
|
FROM pos_order po
|
|
LEFT JOIN (
|
|
SELECT
|
|
order_id,
|
|
SUM(pol.qty * COALESCE((pp.standard_price->'1')::numeric, 0)) AS costo_reale
|
|
FROM pos_order_line pol
|
|
LEFT JOIN product_product pp ON pol.product_id = pp.id
|
|
GROUP BY order_id
|
|
) pol_tot ON po.id = pol_tot.order_id
|
|
WHERE po.state IN ('done')
|
|
GROUP BY 1
|
|
ORDER BY 1 DESC; |