节能岛公众号
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

239 lines
6.0 KiB

-- 小时环比
select
t1.cur_date,
t1.elect,
t1.cl,
t1.cop,
t1.project_id,
t2.elect as last_elect,
t2.cl as last_cl,
t2.cop as last_cop,
case
when t2.elect > 0 then concat(convert(decimal(18, 2),(t1.elect - t2.elect)/ t2.elect * 100), '%')
else '上期无数据'
end mom_elect,
case
when t2.cl > 0 then concat(convert(decimal(18, 2),(t1.cl - t2.cl)/ t2.cl * 100), '%')
else '上期无数据'
end mom_cl,
case
when t2.cop > 0 then concat(convert(decimal(18, 2),(t1.cop - t2.cop)/ t2.cop * 100), '%')
else '上期无数据'
end mom_cop
from
(
select
cur_date,
elect,
cl,
cop,
project_id,
convert(datetime,
concat(cur_date, ':00:00')) as change_cur_date
from
energy_data_hour edh1
where
cur_date >= '2024-11-22 00'
and cur_date <= '2024-11-22 23'
and project_id = 3
) t1
left join
(
select
cur_date,
elect,
cl,
cop,
project_id,
convert(datetime,
concat(cur_date, ':00:00')) as change_cur_date
from
energy_data_hour
where
cur_date >= '2024-11-21 23'
and cur_date <= '2024-11-22 22'
and project_id = 3
) t2
on
t1.change_cur_date = dateadd(hour, 1, t2.change_cur_date)
order by t1.cur_date
-- 日环比
select
t1.cur_date,
t1.elect,
t1.cl,
t1.cop,
t1.project_id,
t2.elect as last_elect,
t2.cl as last_cl,
t2.cop as last_cop,
case
when t2.elect > 0 then concat(convert(decimal(18, 2),(t1.elect - t2.elect)/ t2.elect * 100), '%')
else '上期无数据'
end mom_elect,
case
when t2.cl > 0 then concat(convert(decimal(18, 2),(t1.cl - t2.cl)/ t2.cl * 100), '%')
else '上期无数据'
end mom_cl,
case
when t2.cop > 0 then concat(convert(decimal(18, 2),(t1.cop - t2.cop)/ t2.cop * 100), '%')
else '上期无数据'
end mom_cop
from
(
select
cur_date,
elect,
cl,
cop,
project_id,
convert(datetime,
concat(cur_date, ' 00:00:00')) as change_cur_date
from
energy_data_day
where
cur_date >= '2024-11-01'
and cur_date <= '2024-11-22'
and project_id = 3
) t1
left join
(
select
cur_date,
elect,
cl,
cop,
project_id,
convert(datetime,
concat(cur_date, ' 00:00:00')) as change_cur_date
from
energy_data_day
where
cur_date >= '2024-10-31'
and cur_date <= '2024-11-21'
and project_id = 3
) t2
on
t1.change_cur_date = dateadd(day, 1, t2.change_cur_date)
order by t1.cur_date
-- 月环比
select
t1.cur_date,
t1.elect,
t1.cl,
t1.cop,
t1.project_id,
t2.elect as last_elect,
t2.cl as last_cl,
t2.cop as last_cop,
case
when t2.elect > 0 then concat(convert(decimal(18, 2),(t1.elect - t2.elect)/ t2.elect * 100), '%')
else '上期无数据'
end mom_elect,
case
when t2.cl > 0 then concat(convert(decimal(18, 2),(t1.cl - t2.cl)/ t2.cl * 100), '%')
else '上期无数据'
end mom_cl,
case
when t2.cop > 0 then concat(convert(decimal(18, 2),(t1.cop - t2.cop)/ t2.cop * 100), '%')
else '上期无数据'
end mom_cop
from
(
select
cur_date,
elect,
cl,
cop,
project_id,
convert(datetime,
concat(cur_date, '-01 00:00:00')) as change_cur_date
from
energy_data_month
where
cur_date >= '2024-01'
and cur_date <= '2024-12'
and project_id = 3
) t1
left join
(
select
cur_date,
elect,
cl,
cop,
project_id,
convert(datetime,
concat(cur_date, '-01 00:00:00')) as change_cur_date
from
energy_data_month
where
cur_date >= '2023-12'
and cur_date <= '2024-11'
and project_id = 3
) t2
on
t1.change_cur_date = dateadd(month, 1, t2.change_cur_date)
order by t1.cur_date
-- 年环比
select
t1.cur_date,
t1.elect,
t1.cl,
t1.cop,
t1.project_id,
t2.elect as last_elect,
t2.cl as last_cl,
t2.cop as last_cop,
case
when t2.elect > 0 then concat(convert(decimal(18, 2),(t1.elect - t2.elect)/ t2.elect * 100), '%')
else '上期无数据'
end mom_elect,
case
when t2.cl > 0 then concat(convert(decimal(18, 2),(t1.cl - t2.cl)/ t2.cl * 100), '%')
else '上期无数据'
end mom_cl,
case
when t2.cop > 0 then concat(convert(decimal(18, 2),(t1.cop - t2.cop)/ t2.cop * 100), '%')
else '上期无数据'
end mom_cop
from
(
select
cur_date,
elect,
cl,
cop,
project_id,
convert(datetime,
concat(cur_date, '-01-01 00:00:00')) as change_cur_date
from
energy_data_year
where
cur_date >= '2023'
and cur_date <= '2024'
and project_id = 3
) t1
left join
(
select
cur_date,
elect,
cl,
cop,
project_id,
convert(datetime,
concat(cur_date, '-01-01 00:00:00')) as change_cur_date
from
energy_data_year
where
cur_date >= '2022'
and cur_date <= '2023'
and project_id = 3
) t2
on
t1.change_cur_date = dateadd(year, 1, t2.change_cur_date)
order by t1.cur_date