Faq plan paths

Материал из ANT-Inform documentation
Перейти к: навигация, поиск

Планы потребления в IMUS могут быть получены разными путями для потребления (канал, площадка)[1]. На занный момент как минимму 4:

Запрос MSSQL для получения их по каналу:

SELECT
	(
		SELECT
			SUM(day_plan)
		FROM
			cc_daily_plan pln
			JOIN contract_connection cc ON(pln.cc_id = cc.cc_id)
			JOIN point_connect pc ON(cc.pc_id = pc.pc_id)
		WHERE
			pln.date_for = {d '2015-04-10'}
			AND pc.pc_id = ch.pc_id
	) 'plan by channel->pc->cc->Plan'
	,(
		SELECT
			SUM(day_plan)
		FROM
			cc_daily_plan pln1
			JOIN contract_connection cc1 ON(cc1.cc_id = pln1.cc_id)
			JOIN contract c1 ON(c1.contract_id = cc1.contract_id) -- "Main contract!?"
			JOIN gas_cons_object gco1 ON(gco1.contract_id = c1.contract_id)
			JOIN tuug t1 ON(t1.gas_cons_object_id = gco1.gas_cons_object_id)
			JOIN equip e1 ON(e1.uug_id = t1.uug_id)
			JOIN channel ch1 ON(ch1.equip_id = e1.equip_id)
		WHERE
			pln1.date_for = {d '2015-04-10'}
			AND ch1.channel_id = ch.channel_id
	) 'plan by channel->equip->tuug->GCO->contract->cc->Plan'
	,(
		SELECT
			SUM(day_plan)
		FROM
			cc_daily_plan pln2
			JOIN contract_connection cc2 ON(cc2.cc_id = pln2.cc_id)
			JOIN contract c2 ON(c2.contract_id = cc2.contract_id)
			JOIN consumer cons2 ON(c2.cons_id = cons2.cons_id) --
			JOIN gas_cons_object gco2 ON(gco2.cons_id = cons2.cons_id)
			JOIN tuug t2 ON(t2.gas_cons_object_id = gco2.gas_cons_object_id)
			JOIN equip e2 ON(e2.uug_id = t2.uug_id)
			JOIN channel ch2 ON(ch2.equip_id = e2.equip_id)
		WHERE
			pln2.date_for = {d '2015-04-10'}
			AND ch2.channel_id = ch.channel_id
	) 'plan by channel->equip->tuug->gco->CONSUMER->contract->cc->Plan'
	,(
		SELECT
			SUM(day_plan)
		FROM
			cc_daily_plan pln3
			JOIN gas_cons_object gco3 ON(gco3.gas_cons_object_id = pln3.gas_cons_object_id)
			JOIN tuug t3 ON(t3.gas_cons_object_id = gco3.gas_cons_object_id)
			JOIN equip e3 ON(e3.uug_id = t3.uug_id)
			JOIN channel ch3 ON(ch3.equip_id = e3.equip_id)
		WHERE
			pln3.date_for = {d '2015-04-10'}
			AND ch3.channel_id = ch.channel_id
	) 'plan by channel->equip->tuug->GCO->Plan'
FROM
	channel ch
WHERE
	ch.channel_id = ?

Примечания

  1. Я так понимаю часть исторически сложилосьЮ но в целом не понимаю для чего введена такая огромная и бесполезная денормализация