[Dbix-class] Count + having
RAPPAZ Francois
francois.rappaz at unifr.ch
Tue Jan 17 08:06:42 GMT 2017
Thanks for the help. I tryied
$schema->resultset('Abo')->search_rs(
{
'me.noabt' => $value_aref->[0],
},
{ select => ['me.noabt', {count => 'abojrnabt.noabt', -as => 'count_abo'}],
join => ['abojrnabt'],
group_by => ['me.noabt'],
having => { 'count_abo' => { '>' => 1 } },
});
Which failed with
*** DBIx::Class::Storage::DBI::_dbh_execute(): DBI Exception: DBD::mysql::st execute failed: Unknown column 'count_abo' in 'having clause' [for Statement "SELECT me.noabt FROM abo me WHERE ( me.noabt = ? ) GROUP BY me.noabt HAVING count_abo > ?" with ParamValues: 0="919", 1=1] at ../mod//hg_Gtk2-Ex-DbLinker-DbTools/lib/Gtk2/Ex/DbLinker/DbcDataManager.pm line 403
But this
$schema->resultset('Abo')->search_rs(
{
'me.noabt' => $value_aref->[0],
},
{ select => ['me.noabt', {count => 'abojrnabt.noabt', -as => 'count_abo'}],
join => ['abojrnabt'],
group_by => ['me.noabt'],
having => \[ 'count(abojrnabt.noabt) > ?', 1 ] ,
});
works.
Thanks
François
From: Gerhard Jungwirth [mailto:gjungwirth at sipwise.com]
Sent: 13 January 2017 17:12
To: dbix-class at lists.scsys.co.uk
Subject: Re: [Dbix-class] Count + having
One think to have in mind would be from the documentation:
"The "as"<https://metacpan.org/pod/DBIx::Class::ResultSet#as> attribute has nothing to do with the SQL-side identifier aliasing AS."
instead you should write
select => ['me.noabt', { count => 'abojrnabt.noabt', -as => 'count_abo' } ]
(untested)
On 2017-01-13 15:35, RAPPAZ Francois wrote:
I'm trying to use count and having
I have
Abo a table of rows describing orders (primary key: noabt)
abojrnabt a relationship between this Abo table a Jrnabt table of 2 columns (noabt, nofm)
I would like to know if a specific order has 2 or more corresponding rows in Jrnabt
I'm trying
$schema->resultset('Abo')->search_rs(
{
'me.noabt' => $value,
},
{ select => ['me.noabt', {count => 'abojrnabt.noabt'}],
as => [qw/noabt count_abo/],
join => ['abojrnabt'],
group_by => ['noabt'],
having => [ { 'count_abo' => { '>' => 1 } } ],
},
);
But this fails with
*** DBIx::Class::Storage::DBI::_dbh_execute(): DBI Exception: DBD::mysql::st execute failed:
Unknown column 'count_abo' in 'having clause' [for Statement
"SELECT me.noabt FROM abo me WHERE ( me.noabt = ? ) GROUP BY noabt HAVING count_abo > ?" with ParamValues: 0="919", 1=1] at ...
Thanks for any suggestion
François
_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.scsys.co.uk/pipermail/dbix-class/attachments/20170117/2a48caf7/attachment.htm>
More information about the DBIx-Class
mailing list