У меня есть немного странный запрос, против которого я бился головой, интересно, есть ли у кого-нибудь идеи. Что делает его немного более сложным, так это то, что он должен работать в ограниченной среде во встроенном продукте, где я могу изменять запрос только после объединения.
У меня есть соединение между 2 таблицами для создания полной строки, каждая строка имеет идентификатор модуля и рабочий столбец, который равен 0 для неработающего и 1 для обработанного. Каждая строка также имеет столбец квоты, который ссылается на идентификатор модуля, и все строки с одинаковым идентификатором модуля имеют одинаковое значение квоты.
Так, например, данные
ID |Module | Quota | Complete
-------------------------
1 |A | 1 | 0
2 |B | 2 | 1
3 |A | 1 | 0
4 |A | 1 | 0
5 |B | 2 | 1
6 |C | 4 | 0
Я хочу выбрать записи, в которых сумма полного столбца для модуля меньше квоты для этого модуля.
Где я должен это:
Select table_a.quota, table_a.module, table_b.complete
from table_a inner join table_b on table_a.id = table_b.id
having table_a.quota > (select sum(table_b.complete) from table_a inner join table_b on table_a.id = table_b.id where table_a.module = *module*)
Поскольку я могу повлиять только на что-либо после предложения has, я не знаю, как ссылаться на значение модуля из строки исходного запроса во встроенном выражении ( module ), есть идеи?
Заранее спасибо всем, кто может помочь!