[Dbix-class] Why does this query not work?

Rob Kinyon rob.kinyon at gmail.com
Wed Mar 9 23:00:26 GMT 2011


The as parameter doesn't set the AS keyword in SQL. You want:
     select => [ 'sym', \'COUNT(*) AS stc_count' ],
     as => [qw/ stc stc_count /],

Rob

On Wed, Mar 9, 2011 at 17:49, Dennis Daupert <ddaupert at gmail.com> wrote:
> I'm trying to code a simple query in DBIC. I get an error,
> and don't understand why. What am I doing wrong?
>
> QUERY:
> SELECT sym as stc, count(*) as stc_count
> FROM i1tickets
> GROUP BY stc
> ORDER BY stc_count DESC;
>
> CODE:
> $i1_tic_rs
>   = $schema_pg->resultset('I1tickets')->search(
>   {},
>   {
>     select => [
>       'sym',
>       { count => '*' },
>     ],
>     as => [qw/
>       stc
>       stc_count
>     /],
>     group_by => [qw/ stc /],
>     order_by => { -desc => [qw/ stc_count /] },
>   }
> );
>
> ROW:
> while ( $row = $i1_tic_rs->next ) {
>   $stc            = $row->stc;
>   $stc_count = $row->stc_count;
>   ....
>
> ERROR:
> DBIx::Class::ResultSet::next(): DBI Exception: DBD::Pg::st execute failed:
> ERROR:  column "stc_count" does not exist
> LINE 1: ...OUNT( * ) FROM i1tickets me GROUP BY stc ORDER BY stc_count ...
>                                                              ^ [for
> Statement "SELECT sym, COUNT( * ) FROM i1tickets me GROUP BY stc ORDER BY
> stc_count DESC"]
>
> I don't see the alias declarations in the error msg...
>
> BTW, is there a DBIC helper tool you can feed an sql
> query and have it spit out Perl code? I could use one ;-)
>
> Thanks!
>
> _______________________________________________
> 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
>



-- 
Thanks,
Rob Kinyon



More information about the DBIx-Class mailing list