Changes between Initial Version and Version 1 of AdvancedReports


Ignore:
Timestamp:
06/26/25 22:47:51 (10 days ago)
Author:
221012
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedReports

    v1 v1  
     1= Domify
     2
     3== Напредни извештаи од базата (SQL и складирани процедури)
     4
     5
     6=== 1. Извештај за вкупни приходи на изнајмувачите на недвижности за нивните изнајмени единици како и просечен приход остварен по изнајмена единица во тековната година.
     7{{{
     8SELECT
     9    u.first_name,
     10    u.last_name,
     11    u.email,
     12    u.rating,
     13    lp.is_agent,
     14    COUNT(DISTINCT l.id) AS lease_count,
     15    COUNT(DISTINCT l.tenant_id) AS tenant_count,
     16    COALESCE(SUM(p.amount), 0) AS total_revenue,
     17    ROUND(
     18        CASE WHEN COUNT(DISTINCT l.id) > 0
     19             THEN COALESCE(SUM(p.amount), 0) / COUNT(DISTINCT l.id)
     20             ELSE 0
     21        END, 2
     22    ) AS avg_revenue_per_lease
     23FROM LandlordProfile lp
     24JOIN UserD u ON u.id = lp.id
     25JOIN Lease l ON lp.id = l.landlord_id
     26LEFT JOIN Payment p
     27    ON p.lease_id = l.id
     28    AND p.payment_date >= date_trunc('year', CURRENT_DATE)
     29GROUP BY u.id, u.first_name, u.last_name, u.email, u.rating, lp.is_agent
     30ORDER BY total_revenue DESC;
     31}}}
     32
     33
     34=== 2. Извештај за перформансите на недвижностите по градови: број на имоти, број на издавачки единици, активни единици, остварени приходи за тековната година по град како и просечна кирија по изнајмувачка единица како и остварен приход по објект.
     35
     36{{{
     37SELECT
     38    a.city,
     39    COUNT(DISTINCT p.id) as total_properties,
     40    COUNT(DISTINCT u.id) as total_units,
     41    COUNT(DISTINCT l.id) as active_leases,
     42    SUM(pay.amount) as total_revenue,
     43    ROUND(AVG(l.rent_amount),2) as avg_rent_per_lease,
     44    ROUND (SUM(pay.amount) / COUNT(DISTINCT p.id),2) as revenue_per_property
     45FROM Address a
     46JOIN Property p ON a.id = p.address_id
     47JOIN Unit u ON p.id = u.property_id
     48JOIN Listing lst ON u.id = lst.unit_id
     49JOIN Lease l ON lst.id = l.listing_id
     50JOIN Payment pay ON l.id = pay.lease_id
     51WHERE EXTRACT(YEAR FROM pay.payment_date) = EXTRACT(YEAR FROM CURRENT_DATE)
     52    AND pay.status = 'завршено'
     53GROUP BY a.city
     54ORDER BY total_revenue DESC;
     55}}}