Мне любопытно - почему вы используете Views для построения SQL, а затем не используете Views?
Когда речь идет о более сложных вещах, таких как отношения «многие ко многим», GROUP BY, COUNT, SUM, подзапросы и т. Д., Независимо от того, к чему призывает функция, лучше написать ее самостоятельно (особенно, если модули contrib не поддерживают представления и вам нужно больше чем таблица узлов).
Для меня, когда Views не может это сделать, я пишу простой модуль, который вызывает hook_menu (для регистрации путей) с обратным вызовом, который выполняет запросы, которые мне нужны.