DatabaseCreation: 06 Customer roaming activity.sql

File 06 Customer roaming activity.sql, 2.0 KB (added by 231139, 10 days ago)
Line 
1DROP VIEW IF EXISTS public.v_customer_roaming_activity;
2
3CREATE VIEW public.v_customer_roaming_activity AS
4SELECT c.customer_id,
5 CASE WHEN c.customer_type = 'business' THEN c.company_name ELSE c.first_name || ' ' || c.last_name END AS customer_name,
6 a.account_number, s.subscription_number, rp.country AS roaming_country,
7 'call'::text AS usage_type, cdr.call_cdr_id AS usage_id, cdr.event_start_time AS event_time,
8 ROUND(cdr.duration_seconds::numeric / 60.0, 2) AS usage_quantity, 'minutes'::text AS usage_unit,
9 cdr.direction, cdr.charge_amount
10FROM public.customers c
11JOIN public.accounts a ON a.customer_id = c.customer_id
12JOIN public.subscriptions s ON s.account_id = a.account_id
13JOIN public.usage_cdr_calls cdr ON cdr.subscription_id = s.subscription_id
14JOIN public.roaming_partners rp ON rp.roaming_partner_id = cdr.roaming_partner_id
15UNION ALL
16SELECT c.customer_id,
17 CASE WHEN c.customer_type = 'business' THEN c.company_name ELSE c.first_name || ' ' || c.last_name END,
18 a.account_number, s.subscription_number, rp.country,
19 'sms', sms.sms_cdr_id, sms.event_time, 1::numeric, 'message', sms.direction, sms.charge_amount
20FROM public.customers c
21JOIN public.accounts a ON a.customer_id = c.customer_id
22JOIN public.subscriptions s ON s.account_id = a.account_id
23JOIN public.usage_cdr_sms sms ON sms.subscription_id = s.subscription_id
24JOIN public.roaming_partners rp ON rp.roaming_partner_id = sms.roaming_partner_id
25UNION ALL
26SELECT c.customer_id,
27 CASE WHEN c.customer_type = 'business' THEN c.company_name ELSE c.first_name || ' ' || c.last_name END,
28 a.account_number, s.subscription_number, rp.country,
29 'data', d.data_cdr_id, d.session_start, d.data_used_mb, 'MB', NULL::text, d.charge_amount
30FROM public.customers c
31JOIN public.accounts a ON a.customer_id = c.customer_id
32JOIN public.subscriptions s ON s.account_id = a.account_id
33JOIN public.usage_cdr_data d ON d.subscription_id = s.subscription_id
34JOIN public.roaming_partners rp ON rp.roaming_partner_id = d.roaming_partner_id;
35