sub accounts { my $self = shift; $self->result_source->schema->storage->dbh_do( sub { my ($storage, $dbh) = @_; my ($sql, @param) = @{${$self->as_query}}; my $q1 = qq# SELECT project_id, chart_id, SUM(amount) AS bal FROM ($sql) self GROUP BY project_id, chart_id #; my $q2 = qq# SELECT DISTINCT accno || ' - ' || description FROM ($q1) q LEFT JOIN chart c ON q.chart_id = c.id WHERE bal != 0 #; my $accounts = $dbh->selectcol_arrayref($q2, {}, map $$_[1], @param); return @$accounts; }); }