Guest User

Untitled

a guest
Nov 23rd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.25 KB | None | 0 0
  1. --распределение потребление ТЭ по зданиям от источников
  2. SELECT
  3.     t6.id,
  4.     vc.dt,
  5.     (vc.VALUE - CASE WHEN v1.v IS NULL THEN 0 ELSE v1.v END )*nte.VALUE/snte.v
  6. FROM
  7.     m4.t6 --здания
  8. JOIN
  9.     m4.t3 ON t6.t3_id=t3.id --площака на которой находится здание
  10. JOIN
  11.     m4.t6_t4 ON t6_t4.t6_id=t6.id-- привязка зданий к источникам
  12. JOIN
  13.     m4.counter c ON c.t4_id=t6_t4.t4_id AND c.t16_id=2 AND c.type_acc=0 --счётчик ТЭ на источнике
  14. JOIN
  15.     m2.view_counter vc ON c.id=vc.id_counter -- показания счётчиков ТЭ на источнике
  16. LEFT JOIN
  17.     --сумма показаний счётчиков по зданиям подключенным к источнику, но у которых есть собственные счётчики
  18.     (
  19.         SELECT
  20.             t6_t4.t4_id,vc.dt,SUM(vc.VALUE) AS v
  21.         FROM
  22.             m4.t6_t4
  23.         JOIN
  24.             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 --Счётчики на здании
  25.         JOIN
  26.             m2.view_counter vc ON c.id=vc.id_counter
  27.         GROUP BY
  28.             t6_t4.t4_id,vc.dt
  29.            
  30.     ) AS v1 ON v1.t4_id=c.t4_id
  31. LEFT JOIN
  32.     (SELECT location_id,MIN(DATE) AS DATE FROM m7.t1 GROUP BY location_id) tl ON t3.location_id=tl.location_id --дата для вычисления норм потребления по теплу
  33. LEFT JOIN
  34.     m6.view_norm_te nte ON nte.id=t6.id AND nte.DATE=tl.DATE
  35. LEFT JOIN
  36.     --сумма норм потребеления тепла по зданиям подключенным к источнику и не имеющих собсвтенный счётчик
  37.     (
  38.         SELECT
  39.             t6_t4.t4_id,nte.DATE,SUM(nte.VALUE) AS v
  40.         FROM
  41.             m4.t6_t4
  42.         JOIN
  43.             m6.view_norm_te nte ON t6_t4.t6_id=nte.id
  44.         LEFT JOIN
  45.             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
  46.         WHERE c.id IS NULL
  47.         GROUP BY t6_t4.t4_id,nte.DATE
  48.     ) snte ON snte.t4_id=c.t4_id AND snte.DATE=tl.DATE
  49. LEFT JOIN
  50.     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 --счётчики привязанные к зданию
  51. WHERE
  52.     c1.id IS NULL --нет счётчиков привязанных к зданию
Add Comment
Please, Sign In to add comment