2012-10-06 110 views
-1

数据库在Perl我有一个事务表是这样的:从电子表格

TransactionID Date   AccountNumber Type Amount 
657520   02-07-1999  016901581432 Debit 16000 
657524   02-07-1999  016901581432 Debit 13000 
657538   09-07-1999  016901581432 Credit 11000 
657548   18-07-1999  016901581432 Credit 15500 
657519   02-07-1999  016901581433 Debit 12000 
657523   02-07-1999  016901581433 Credit 11000 
657529   03-07-1999  016901581433 Debit 15000 
657539   10-07-1999  016901581433 Credit 10000 
657541   11-07-1999  016901581434 Debit 12000 
657525   03-07-1999  016901581434 Debit 15000 
657533   05-07-1999  016901581434 Credit 12500 

我应该找到每个总借记和总信贷量使用SQL查询帐户在电子表格中的数据库和存储结果使用Perl。

这是我的代码:

#!/usr/bin/perl 
use DBI; 
use strict; 
use warnings; 
use Spreadsheet::WriteExcel; 
$dbh = DBI->connect('dbi:database','prithvi','prithvi') or die "Couldn't connect"; 
my $tran_cur = $dbh->prepare("SELECT AccountNumber, Type, SUM(Amount) FROM transaction GROUP BY AccountNumber, Type"); 
my $workbook = Spreadsheet::WriteExcel->new('results.xls'); 
my $worksheet = $workbook->add_worksheet('Result'); 
my $row = 0; 
my $col = 0; 
$worksheet->write_row($row++, $col, ['Account Number','Type','Total Amount']); 
while(my @data = $tran_cur->fetchrow_array) 
{ 
$worksheet->write_row($row++, $col, \@data); 
} 

我在哪里代码回事?请帮忙。我只在Excelsheet中获得标题作为输出。

+1

哪里是你的'$ tran_cur-> execute'? –

回答

2

你需要调用$tran_cur->fetchrow_array之前执行准备的语句:

$tran_cur->execute;