Я постараюсь описать как можно лучше.Работа с неверной моделью данных.
Table1
id, name, area, bla1, bla2, bla3
Table2
table1_ID, stuff1, stuff2, ID
trigger on table1
insert row in table2 if table1 is updated
В table1
У меня есть 10 различных областей, всего 186 строк, не так много, я не могу сделать это вручную в течение 2 секунд с Excel, но я хочусоздать отчет в реальном времени.
Отчет будет
area1 - %complete
area2 - %complete
area3 - %complete
etc.....
Когда строка обновляется в table1
, триггер вставляет некоторые данные в таблицу2, указывая «завершено».
Я могу сделать (вероятно, действительно плохая форма)
select
(select count(*) from table1 a where a.id in (select id from table2))
/
(select count(*) from table1)
*100
Это дает мне общий процент завершения.Я думал о добавлении предложений where к каждому из select, жестком кодировании 'area', а затем объединении десятков раз.Тьфу, скажи мне, что есть лучший способ получить это в одном отчете.
Очевидно, что этот запрос - неудачный
select area,
(
(select count(*) from table1 a where a.id in (select id from table2))
/
(select count(*) from table1)
*100) from table1
group by area
Я считаю, что группа by где-то должна туда вписаться.Заранее спасибо!