Advertisement
Valik888

Untitled

Feb 5th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 3.75 KB | None | 0 0
  1. BEGIN
  2.     data_start := TO_DATE('01.06.2017', 'mm.dd.yyyy');
  3.     Hsid       := '000000323614';
  4.     SELECT FinMonth INTO FinMonth FROM System;
  5.     data_end_nach := LAST_DAY(finmonth) + 1 - 1/(24*60*60);
  6.     data_beg_nach := TRUNC(data_start,'MM');
  7.     DBMS_OUTPUT.put_line('счетчики по дому:');
  8.     FOR counter IN (    
  9.         SELECT DISTINCT
  10.             k.*, s.vid
  11.         FROM
  12.             c_House c1,
  13.             c_House c2,
  14.             k_Counters k,
  15.             spr_counters s
  16.         WHERE c1.House_ID = LPAD(Hsid, 12, '0')
  17.             AND c1.Status = 1
  18.             AND k.Data BETWEEN Data_Beg_Nach AND Data_End_Nach
  19.             AND c2.House_ID = c1.House_ID
  20.             AND c2.Status = 1
  21.             AND k.ID = c2.counter_id
  22.             AND s.ID = k.counter_id
  23.   )LOOP
  24.         DBMS_OUTPUT.put_line('    '||counter.id||' vid='||counter.vid);
  25.         FOR idict IN (
  26.             SELECT DATA, indication, indication_old FROM n_indications
  27.             WHERE counter_id = counter.ID AND Data BETWEEN Data_Beg_Nach AND Data_End_Nach
  28.         ) LOOP
  29.             DBMS_OUTPUT.put_line('        data='||idict.DATA||' new='||idict.indication||' old='||idict.indication_old);
  30.             DBMS_OUTPUT.put_line('            квартиры');
  31.             FOR apartcounter IN(
  32.                 SELECT DISTINCT
  33.                     kc.apart_id,
  34.                     ni.indication,
  35.                     ni.data_ins,
  36.                     NVL(ni.indication_old, 0) indication_old,
  37.                     ni.data_old
  38.                 FROM k_counters kc
  39.                     JOIN spr_counters s ON s.ID = kc.counter_id
  40.                     JOIN a_counters ac ON ac.house_counter_id = kc.house_counter_id
  41.                     JOIN n_indications ni ON ni.counter_id = kc.id
  42.                     WHERE ac.house_counter_id = counter.ID
  43.                     AND ni.data BETWEEN Data_Beg_Nach AND Data_End_Nach
  44.                     ORDER BY kc.apart_id, ni.data_ins
  45.             ) LOOP
  46.                 DBMS_OUTPUT.put_line('            кв.'||'['||apartcounter.data_old||'-'||apartcounter.data_ins||']'||apartcounter.apart_id||' показания '||apartcounter.indication_old||'-'||apartcounter.indication);  
  47.             END LOOP;
  48.         END LOOP;
  49.   END LOOP;
  50. END;
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57. счетчики по дому:
  58.     100000108595 vid=2
  59.         data=01.06.2017 NEW=3 old=
  60.             квартиры
  61.             кв.[-01.06.2017]000002467966 показания 0-11
  62.             кв.[-01.06.2017]000002467985 показания 0-25
  63.             кв.[-01.06.2017]000002467985 показания 0-20
  64.             кв.[01.06.2017-30.06.2017]000002467985 показания 25-34
  65.             кв.[01.06.2017-30.06.2017]000002467985 показания 20-31
  66.         data=30.06.2017 NEW=73 old=3
  67.             квартиры
  68.             кв.[-01.06.2017]000002467966 показания 0-11
  69.             кв.[-01.06.2017]000002467985 показания 0-25
  70.             кв.[-01.06.2017]000002467985 показания 0-20
  71.             кв.[01.06.2017-30.06.2017]000002467985 показания 25-34
  72.             кв.[01.06.2017-30.06.2017]000002467985 показания 20-31
  73.     100000108593 vid=1
  74.         data=01.06.2017 NEW=2 old=
  75.             квартиры
  76.             кв.[-01.06.2017]000002467966 показания 0-10
  77.             кв.[-01.06.2017]000002467985 показания 0-0
  78.             кв.[01.06.2017-20.06.2017]000002467985 показания 0-10
  79.             кв.[20.06.2017-30.06.2017]000002467985 показания 10-11
  80.         data=30.06.2017 NEW=192 old=2
  81.             квартиры
  82.             кв.[-01.06.2017]000002467966 показания 0-10
  83.             кв.[-01.06.2017]000002467985 показания 0-0
  84.             кв.[01.06.2017-20.06.2017]000002467985 показания 0-10
  85.             кв.[20.06.2017-30.06.2017]000002467985 показания 10-11
  86.     100000108594 vid=2
  87.         data=01.06.2017 NEW=1 old=
  88.             квартиры
  89.             кв.[-01.06.2017]000002467979 показания 0-12
  90.         data=30.06.2017 NEW=81 old=1
  91.             квартиры
  92.             кв.[-01.06.2017]000002467979 показания 0-12
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement