Мне нужно предоставить данные об использовании, и мне нужно обобщить их по месяцам.
В моем коде я смотрю только на январь 2018 года, поэтому найти значения Max и Min на основе текущего набора данных довольно просто. Если бы я расширил его на весь 2018 год, я бы в настоящее время показывал МАКС и МИН на весь год.
SELECT DISTINCT
bi_vwn_co_acct,
bi_consumer_view_1.bi_format_name,
bi_srv_loc.bi_city,
bi_srv_loc.bi_st,
bi_srv_loc.bi_x_coord,
bi_srv_loc.bi_y_coord,
bi_interval_rdgs.bi_mtr_nbr,
MAX (bi_interval_rdgs.bi_rdg),
MIN (bi_interval_rdgs.bi_rdg),
(MAX (bi_interval_rdgs.bi_rdg) - MIN (bi_interval_rdgs.bi_rdg))
AS monthusage
FROM bi_srv_loc
INNER JOIN bi_srv_link
ON bi_srv_loc.bi_srv_loc_nbr = bi_srv_link.bi_srv_loc_nbr
INNER JOIN bi_type_service
ON bi_srv_link.bi_srv_loc_nbr = bi_type_service.bi_srv_loc_nbr
INNER JOIN bi_consumer_view_1
ON bi_type_service.bi_acct = bi_consumer_view_1.bi_vwn_co_acct
INNER JOIN bi_interval_rdgs
ON bi_srv_link.bi_mtr_nbr = bi_interval_rdgs.bi_mtr_nbr
WHERE bi_interval_rdg_dt_tm >= '01-JAN-2018'
AND bi_interval_rdg_dt_tm <= '31-JAN-2018'
AND bi_type_service.bi_srv_stat_cd IN ('1',
'7',
'18',
'21',
'22',
'30')
GROUP BY bi_consumer_view_1.bi_vwn_co_acct,
bi_consumer_view_1.bi_format_name,
bi_srv_loc.bi_x_coord,
bi_srv_loc.bi_y_coord,
bi_interval_rdgs.bi_mtr_nbr,
bi_srv_loc.bi_city,
bi_srv_loc.bi_st
Я надеюсь получить список данных, который выглядит примерно так:
ACCT1 JAN MONTHUSAGE: 10
ACCT1 FEB MONTHUSAGE: 13
ACCT1 MAR MONTHUSAGE: 12
...
ACCT2 JAN MONTHUSAGE: 23
ACCT2 FEB MONTHUSAGE: 18
Очевидно, что в моем коде показано больше полей, но в целом это то, что мне нужно. Каким-то образом мне нужно пройти через определенный диапазон дат и разбить его на месяц. Буду очень признателен за любую помощь или руководство!