Modified all points Allan sent via email on 04-05-2026

This commit is contained in:
James Richie
2026-04-08 20:09:13 -04:00
parent da832f82fc
commit cb9e1a9fa1
11 changed files with 422 additions and 480 deletions
+58 -72
View File
@@ -1,82 +1,68 @@
<?php
$SQL = "create or replace view view_company_permit_trends as
select
companies.permit_company,
ifnull(prev.prev_ytd_permits, 0) as prev_ytd_permits,
ifnull(curr.ytd_permits, 0) as ytd_permits,
select companies.permit_company,
ifnull(prev.prev_ytd_permits, 0) as prev_ytd_permits,
ifnull(curr.ytd_permits, 0) as ytd_permits,
ifnull(prev.prev_ytd_value, 0) as prev_ytd_value,
ifnull(curr.ytd_value, 0) as ytd_value,
ifnull(prev.prev_ytd_value, 0) as prev_ytd_value,
ifnull(curr.ytd_value, 0) as ytd_value,
case
when ifnull(prev.prev_ytd_permits, 0) = 0 then null
else round( ((ifnull(curr.ytd_permits, 0) - prev.prev_ytd_permits) / prev.prev_ytd_permits) * 100, 2 )
end
as permits_pct_change,
case
when ifnull(prev.prev_ytd_permits, 0) = 0 then null
else round(
((ifnull(curr.ytd_permits, 0) - prev.prev_ytd_permits) / prev.prev_ytd_permits) * 100,
2
)
end as permits_pct_change,
case
when ifnull(prev.prev_ytd_value, 0) = 0 then null
else round(((ifnull(curr.ytd_value, 0) - prev.prev_ytd_value) / prev.prev_ytd_value) * 100, 2 )
end
as value_pct_change,
case
when ifnull(prev.prev_ytd_value, 0) = 0 then null
else round(
((ifnull(curr.ytd_value, 0) - prev.prev_ytd_value) / prev.prev_ytd_value) * 100,
2
)
end as value_pct_change,
case
when ifnull(prev.prev_ytd_permits, 0) = 0 then ''
when ( ifnull(curr.ytd_permits, 0) / prev.prev_ytd_permits) < 0.75 then 'down'
when (( ifnull(curr.ytd_permits, 0) - prev.prev_ytd_permits) / prev.prev_ytd_permits) >= 0.05 then 'up'
when (( ifnull(curr.ytd_permits, 0) - prev.prev_ytd_permits) / prev.prev_ytd_permits) <= -0.05 then '='
else '='
end
as permits_trend,
case
when ifnull(prev.prev_ytd_permits, 0) = 0 then ''
when (ifnull(curr.ytd_permits, 0) / prev.prev_ytd_permits) < 0.75 then 'down'
when ((ifnull(curr.ytd_permits, 0) - prev.prev_ytd_permits) / prev.prev_ytd_permits) >= 0.05 then 'up'
when ((ifnull(curr.ytd_permits, 0) - prev.prev_ytd_permits) / prev.prev_ytd_permits) <= -0.05 then 'down'
else '='
end as permits_trend,
case
when ifnull(prev.prev_ytd_value, 0) = 0 then ''
when ( ifnull(curr.ytd_value, 0) / prev.prev_ytd_value) < 0.75 then '='
when (( ifnull(curr.ytd_value, 0) - prev.prev_ytd_value) / prev.prev_ytd_value) >= 0.05 then 'up'
when (( ifnull(curr.ytd_value, 0) - prev.prev_ytd_value) / prev.prev_ytd_value) <= -0.05 then 'down'
else '='
end
as value_trend
from (
select distinct permit_company
from permits
where permit_company is not null
and trim(permit_company) <> '' ) companies
left join (
select permit_company, count(*) as prev_ytd_permits, sum(ifnull(permit_value, 0)) as prev_ytd_value
from permits
where permit_company is not null
and trim(permit_company) <> ''
and permit_permit_date >= makedate(year(curdate()) - 1, 1)
and permit_permit_date <= date_sub(curdate(), interval 1 year)
group by permit_company ) prev
on companies.permit_company = prev.permit_company
case
when ifnull(prev.prev_ytd_value, 0) = 0 then ''
when (ifnull(curr.ytd_value, 0) / prev.prev_ytd_value) < 0.75 then '='
when ((ifnull(curr.ytd_value, 0) - prev.prev_ytd_value) / prev.prev_ytd_value) >= 0.05 then 'up'
when ((ifnull(curr.ytd_value, 0) - prev.prev_ytd_value) / prev.prev_ytd_value) <= -0.05 then 'down'
else '='
end as value_trend
from
(
select distinct permit_company
from permits
where permit_company is not null
and trim(permit_company) <> ''
) companies
left join
(
select
permit_company,
count(*) as prev_ytd_permits,
sum(ifnull(permit_value, 0)) as prev_ytd_value
from permits
where permit_company is not null
and trim(permit_company) <> ''
and permit_permit_date >= makedate(year(curdate()) - 1, 1)
and permit_permit_date <= date_sub(curdate(), interval 1 year)
group by permit_company
) prev
on companies.permit_company = prev.permit_company
left join
(
select
permit_company,
count(*) as ytd_permits,
sum(ifnull(permit_value, 0)) as ytd_value
from permits
where permit_company is not null
and trim(permit_company) <> ''
and permit_permit_date >= makedate(year(curdate()), 1)
and permit_permit_date <= curdate()
group by permit_company
) curr
on companies.permit_company = curr.permit_company";
left join (
select permit_company, count(*) as ytd_permits, sum(ifnull(permit_value, 0)) as ytd_value
from permits
where permit_company is not null
and trim(permit_company) <> ''
and permit_permit_date >= makedate(year(curdate()), 1)
and permit_permit_date <= curdate()
group by permit_company ) curr
on companies.permit_company = curr.permit_company";
?>