#!/usr/bin/perl use strict; use warnings; use DBI; my $dbh = DBI->connect("DBI:CSV:f_dir=."); $dbh->do("DROP TABLE dw_foo"); $dbh->do("DROP TABLE dw_counts"); $dbh->do("CREATE TABLE dw_foo ( n integer, ct integer, s text )"); $dbh->do("INSERT INTO dw_foo VALUES ( 1, 5, 'blah' )"); $dbh->do("INSERT INTO dw_foo VALUES ( 1, 6, 'stuff' )"); $dbh->do("INSERT INTO dw_foo VALUES ( 2, 5, 'blah' )"); $dbh->do("INSERT INTO dw_foo VALUES ( 2, 6, 'stuff' )"); $dbh->do("INSERT INTO dw_foo VALUES ( 2, 7, 'thing' )"); my $sql = "select n, sum(ct) as ct from dw_foo where s NOT LIKE '%a%' group by n"; $dbh->do("CREATE TABLE dw_counts AS $sql"); doDump( $dbh->selectall_arrayref($sql) ); doDump( $dbh->selectall_arrayref("select * from dw_counts") ); sub doDump { my $aref = shift; print "TABLE:\n"; print join("\t", @$_), "\n" for @$aref; } __END__ Use of uninitialized value in substitution iterator at /home/dwestbrook/CPAN/lib/perl5/site_perl/5.6.1/SQL/Parser.pm line 1596. TABLE: 1 6 2 13 TABLE: 1 11 2 18