常用函數sql

SELECT
f_pile.sid AS '站ID',
f_pile_site.sname AS '站名稱', 
sum((case when f_order_settlement.sn is not null then f_order.useele else f_order.useele end)) AS '充電度數',
sum((case when f_order_settlement.sn is not null then f_order_settlement.ele_amount else f_order.ele_price end)) AS '電費收入',
sum((case when f_order_settlement.sn is not null then f_order_settlement.service_amount else f_order.server_price end)) AS '服務費',
sum((case when f_order_settlement.sn is not null then f_order_settlement.total_amount else f_order.ele_price + f_order.server_price end)) AS '總電費' ,
count(f_order.sn) as '總訂單量',
DATE_FORMAT(f_order.createtime,'%Y%m') 月份
FROM
f_order
LEFT JOIN f_user ON f_order.uid = f_user.uid 
LEFT JOIN f_pile ON f_pile.pilenum = f_order.pid
LEFT JOIN f_pile_site ON f_pile_site.sid = f_pile.sid
left join f_order_settlement on f_order_settlement.sn=f_order.sn
WHERE
f_order.ostate in (1)
and f_order.createtime>='2018-10-01'
and f_order.createtime<'2019-03-01'
group by f_pile.sid,月份
select * from (SELECT pcui.user_name AS '真實姓名', concat('\t',pcui.id_card) AS '證件號碼',pic.contract_id AS contractId, pic.contract_title AS '合同名稱', pic.contract_num AS '合同編號',
pepi.project_num AS '項目編號', pic.contract_sign_time AS '簽訂時間', pic.entrust_operate_effective_time AS '運營生效時間', pic.entrust_operate_invalid_time AS '運營失效時間',
pic.warranty_start_time AS '質保開始時間', pic.warranty_end_time AS '質保結束時間',
cc.customer_id AS customerId, concat('\t',pcui.phone) as '手機號', pcui.postal_address AS '通訊地址', pcui.email as '電子郵箱', 
pic.buy_pile_num AS '購樁總檯數', pic.total_money AS '總金額(元)', pic.operate_id AS operateId, 
pic.update_id AS updateId, pic.create_time AS createTime, pic.update_time AS updateTime, case pic.del_status when 2 then '是' else '否' end AS '合同作廢', 
case IF( pic.entrust_operate_invalid_time < now(), 2, 1 ) when 2 then '失效' else '有效' end AS '質保',
case IF( pic.warranty_end_time < now(), 2, 1 ) when 2 then '失效' else '有效' end AS '委託營運', 
if(pepi.project_num is NULL,2,1) AS projectStatus, 
case if(ppi.address is null,2,1) when 2 then '無' else '有' end AS '項目地址',
case if(pcp.electric_pile_id is null,2,1) when 2 then '無' else '有' end AS '合同樁',
ppi.project_name AS '項目名稱', concat('\t',pepi.pile_num_one) AS '樁號1', concat('\t',pepi.pile_num_two) AS '樁號2' FROM p_contract_info pic 
left join (SELECT contract_id, electric_pile_id,del_status from p_contract_pile GROUP BY id) pcp on pic.contract_id = pcp.contract_id 
left join p_electric_pile_info pepi on pcp.electric_pile_id = pepi.electric_pile_id 
LEFT JOIN p_contract_customer cc ON pic.contract_id = cc.contract_id LEFT JOIN p_customer_info pcui ON cc.customer_id = pcui.customer_id LEFT JOIN p_bankcard_info pb 
ON cc.bankcard_id = pb.bankcard_id LEFT JOIN p_project_info ppi ON ppi.project_num = pepi.project_num ) as contractInfo ORDER BY '合同作廢' ASC
select '峯',sum(useele) from f_order 
left join f_pile on f_pile.pilenum=f_order.pid
left join f_pile_site on f_pile_site.sid=f_pile.sid
where f_order.createtime>='2019.5.13'
and f_order.createtime<'2019.5.20'
and f_pile_site.provinceid=510000 and f_pile_site.sstate=1 and f_pile_site.sid<>79
and (
(DATE_FORMAT(f_order.createtime,'%H:%i:%s')>='07:00:00' and DATE_FORMAT(f_order.createtime,'%H:%i:%s')<'11:00:00')
or (DATE_FORMAT(f_order.createtime,'%H:%i:%s')>='19:00:00' and DATE_FORMAT(f_order.createtime,'%H:%i:%s')<'23:00:00')
)union all
select '谷',sum(useele) from f_order 
left join f_pile on f_pile.pilenum=f_order.pid
left join f_pile_site on f_pile_site.sid=f_pile.sid
where f_order.createtime>='2019.5.13'
and f_order.createtime<'2019.5.20' 
and f_pile_site.provinceid=510000 and f_pile_site.sstate=1 and f_pile_site.sid<>79
and (
(DATE_FORMAT(f_order.createtime,'%H:%i:%s')>='00:00:00' and DATE_FORMAT(f_order.createtime,'%H:%i:%s')<'07:00:00')
or (DATE_FORMAT(f_order.createtime,'%H:%i:%s')>='23:00:00' and DATE_FORMAT(f_order.createtime,'%H:%i:%s')<='23:59:59')
)
union all
select '平',sum(useele) from f_order 
left join f_pile on f_pile.pilenum=f_order.pid
left join f_pile_site on f_pile_site.sid=f_pile.sid
where f_order.createtime>='2019.5.13'
and f_order.createtime<'2019.5.20' 
and f_pile_site.provinceid=510000 and f_pile_site.sstate=1 and f_pile_site.sid<>79
and (
(DATE_FORMAT(f_order.createtime,'%H:%i:%s')>='11:00:00' and DATE_FORMAT(f_order.createtime,'%H:%i:%s')<'19:00:00')
);
SELECT
f_pile.sid AS '站ID',
ps.province AS '省份',
f_pile_site.sname AS '站名稱', 
sum((case when f_order_settlement.sn is not null then f_order.useele else f_order.useele end)) AS '充電度數',
sum((case when f_order_settlement.sn is not null then f_order_settlement.ele_amount else f_order.ele_price end)) AS '電費收入',
sum((case when f_order_settlement.sn is not null then f_order_settlement.service_amount else f_order.server_price end)) AS '服務費',
sum((case when f_order_settlement.sn is not null then f_order_settlement.total_amount else f_order.ele_price + f_order.server_price end)) AS '總電費' ,
count(f_order.sn) as '總訂單量',
DATE_FORMAT(f_order.createtime,'%Y%m') 月份
FROM
f_order
LEFT JOIN f_user ON f_order.uid = f_user.uid 
LEFT JOIN f_pile ON f_pile.pilenum = f_order.pid
LEFT JOIN f_pile_site ON f_pile_site.sid = f_pile.sid
left join f_order_settlement on f_order_settlement.sn=f_order.sn
LEFT JOIN provinces ps ON ps.provid = f_pile_site.provinceid
WHERE
f_order.ostate in (1) AND f_pile_site.provinceid != '510000'
and f_order.createtime>='2019-01-01'
and f_order.createtime<'2019-08-31'
group by f_pile.sid,月份,省份;

查詢有充電中,但是結算爲0的數據 

select * from f_order where EXISTS(select 1 from f_order_settlement where total_amount=0 and f_order.sn=f_order_settlement.sn) and
createtime>='2019-10-01' and EXISTS(select 1 from charge_data_temp where useele>0 and f_order.oid=charge_data_temp.oid)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章