此處需要儲存一次select的結果集用來進行第二次連線。
with temp1 as
(select
*from t_energy_type where company_id =
991897881281560576
and del_status =1)
, temp2 as
(select b.
value
, a.energy_type_id
from t_energy_type a
left
join t_unit_consumption b on b.energy_type_id = a.energy_type_id and b.del_status =
1left
join t_system_group c on c.group_id = b.group_id and c.del_status =
1where a.del_status =
1and a.company_id =
991897881281560576
and b.
type
='m'
--時間型別
and c.
type=1
and to_date(to_char(record_date,
'yyyy-mm'),
'yyyy-mm')=
to_date(
'2021-02-28'
,'yyyy-mm'))
select t1.name, t1.english_name, t2.
value
, t1.energy_type_id
from temp1 t1
left
join temp2 t2 on t2.energy_type_id = t1.energy_type_id;
可以用 with temp1 as (第一次查詢),temp as (第二次查詢) select * from temp1 left join temp 2 on **** = ***;
的語句把兩次結果進行再次關聯。
特定業務,比如計算環比 需要用兩個同樣語句的不同時間條件進行比較計算的情景,可以用臨時表儲存,再進行查詢結果。
select a.
value
, a.record_date as
"recorddate"
, f.english_name,
concat(f.name,
'(', f.unit,
')')
as name
from t_unit_consumption a
left
join t_system_group b on b.group_id = a.group_id and b.del_status =
1left
join t_device c on c.device_id = b.device_id and c.del_status =
1left
join t_energy_relation d
on d.group_id = a.group_id and d.energy_type_id = a.energy_type_id and d.del_status =
1left
join t_energy_type f on f.energy_type_id = a.energy_type_id and f.del_status =
1where a.del_status =
1and a.
type
='m'
--按月 按日
and to_char(a.record_date,
'yyyy-mm-dd'
)>=
'2021-01-01'
--開始時間
and to_char(a.record_date,
'yyyy-mm-dd'
)<=
'2021-03-04'
--結束時間
and a.company_id =
991897881281560576
--公司id
and b.
type=3
and d.is_valid =
1and d.is_uc_statistics =
1and c.
type=2
--裝置型別
;
cast(
value
asdecimal(18
,2))
,//保留兩位小數點
case
when t2.
value!=0
then cast(
((t1.
value
- t2.
value
)/ t2.
value)as
decimal(18
,2))
else
null
endas ratio
例如對現在的時間進行修改
now
()::timestamp
+'-1 year'
now(
)::timestamp
+'-1 mouth'
now(
)::timestamp
+'-1 day'
Promise 實際使用
promise 實際使用 const p new promise resolve,reject then else const c res 1000 p.then res then r catch err 例項2 封裝 呼叫 ajax prefix entity1 action1 null,func...
mysql IFNULL實際使用
表 srm supplier srm sup company,srm company 關係 srm supplier 一對多 srm sup company,srm company 多對一 srm sup company 問題 取所有srm supplier資訊,其中companyname存在srm...
Linux mount實際使用
檢視所有檔案系統 裝置 fdisk l 1.當要重新掛載乙個檔案系統時 裝置 可以直接 mount o remount,rw dev sdb9 檔案系統 mnt sdb9 目錄 也可以 umount mnt sdb9 fdisk l 作用是找到所有的檔案系統,如果用df或者mount命令不能看到沒有...