Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --распределение потребление ТЭ по зданиям от источников
- SELECT
- t6.id,
- vc.dt,
- (vc.VALUE - CASE WHEN v1.v IS NULL THEN 0 ELSE v1.v END )*nte.VALUE/snte.v
- FROM
- m4.t6 --здания
- JOIN
- m4.t3 ON t6.t3_id=t3.id --площака на которой находится здание
- JOIN
- m4.t6_t4 ON t6_t4.t6_id=t6.id-- привязка зданий к источникам
- JOIN
- m4.counter c ON c.t4_id=t6_t4.t4_id AND c.t16_id=2 AND c.type_acc=0 --счётчик ТЭ на источнике
- JOIN
- m2.view_counter vc ON c.id=vc.id_counter -- показания счётчиков ТЭ на источнике
- LEFT JOIN
- --сумма показаний счётчиков по зданиям подключенным к источнику, но у которых есть собственные счётчики
- (
- SELECT
- t6_t4.t4_id,vc.dt,SUM(vc.VALUE) AS v
- FROM
- m4.t6_t4
- JOIN
- m4.counter c ON c.t6_id=c.t6_id AND c.t16_id=2 AND c.type_acc=1 AND c.array_t15_id IS NULL --Счётчики на здании
- JOIN
- m2.view_counter vc ON c.id=vc.id_counter
- GROUP BY
- t6_t4.t4_id,vc.dt
- ) AS v1 ON v1.t4_id=c.t4_id
- LEFT JOIN
- (SELECT location_id,MIN(DATE) AS DATE FROM m7.t1 GROUP BY location_id) tl ON t3.location_id=tl.location_id --дата для вычисления норм потребления по теплу
- LEFT JOIN
- m6.view_norm_te nte ON nte.id=t6.id AND nte.DATE=tl.DATE
- LEFT JOIN
- --сумма норм потребеления тепла по зданиям подключенным к источнику и не имеющих собсвтенный счётчик
- (
- SELECT
- t6_t4.t4_id,nte.DATE,SUM(nte.VALUE) AS v
- FROM
- m4.t6_t4
- JOIN
- m6.view_norm_te nte ON t6_t4.t6_id=nte.id
- LEFT JOIN
- m4.counter c ON t6_t4.t6_id=c.t6_id AND c.t16_id=2 AND c.type_acc=1 AND c.array_t15_id IS NULL
- WHERE c.id IS NULL
- GROUP BY t6_t4.t4_id,nte.DATE
- ) snte ON snte.t4_id=c.t4_id AND snte.DATE=tl.DATE
- LEFT JOIN
- m4.counter c1 ON t6.id=c1.t6_id AND c1.array_t15_id IS NULL AND c1.t16_id=2 AND c1.type_acc=1 --счётчики привязанные к зданию
- WHERE
- c1.id IS NULL --нет счётчиков привязанных к зданию
Add Comment
Please, Sign In to add comment