Cześć,

od pewnego czasu korzystam z Fabrika. Świetne narzędzie, przy jego pomocy tworzę rozmaite listy i zestawienia. Ponieważ ich prezentacja przez mechanizmy Fabrika jest dość uboga, postanowiłem samemu tworzyć zestawienia (dzięki Sourcererowi) z użyciem joomlowego mechanizmy JDatabase. Wszystko szło mi świetnie, zrobiłem do tej pory masę raportów, aż nagle potknąłem się na problemie, o którym w życiu bym nie pomyślał, że będzie taką zagwozdką.

Załóżmy, że mam trzy proste tabele (tabela1, tabela2, tabela3) o identycznej budowie - każda posiada kolumny: 'ID', 'data', 'tytul', 'udostepnianie'. W tych tabelach odnotowywane są statystyki udostępnień bibliotecznych czasopism (czyli jakiego dnia, jaki tytuł i ile razy udostępniono). Podsumowanie liczby wypożyczeń dla każdej z tabel z osobna (każda tabela reprezentuje inną agendę) to żaden problem. Problemem za to (przynajmniej dla mnie) jest zsumowanie w jednej tabeli liczby wszystkich udostępnień z wszystkich tabel.

Naprawdę siedzę nad tym i siedzę i nie chce mi to zadziałać. Na wszystkie sposoby starałem się zmusić do pracy 'unionAll' (zgodnie z dokumentacją), żeby połączyć wszystkie tabele i je zsumować, ale za każdym razem fiasko - najczęściej otrzymuję komunikat 'Call to a member function select() on null'.

Może mi ktoś wskazać, co jest nie tak z tym zapytaniem?

$query = $db->getQuery(true);
$q2->select('data, sum(udostepnianie) as sumtab');
$q2->from('tabela2');
$q2->where($db->quoteName('data').'LIKE \'2015%\'');
$q3->select('data, sum(udostepnianie) as sumtab');
$q3->from('tabela3');
$q3->where($db->quoteName('data').'LIKE \'2015%\'');
$query->select('data, sum(udostepnianie) as sumtab');
$query->from('tabela1');
$query->where($db->quoteName('data').'LIKE \'2015%\'');
$query->unionAll($q2);
$query->unionAll($q3);
$query->group('substr(data,1,4)');
$db->setQuery($query);
$result = $db->loadObjectList();

Na wszelki wypadek zaznaczam, że żaden ze mnie orzeł bazodanowy.

Z góry dziękuję za pomoc