segunda-feira, 25 de junho de 2007

Rotina em DELPHI para Top 10 entre datas escolhidas do Sistema de Video Locadora

A rotina abaixo descreve os 10 clientes que realizaram as maiores quantidades de empréstimos, entre duas datas, no sistema de Video Locadora. Lembre-se que essa quantidade é diferente do maior número de DVD´s locados (empréstimos podem ter um ou vários DVD´s locados).
//===================================================================================
procedure TForm_consultas_top_10.Button1Click(Sender: TObject);
var
alx_str_sql_texto1: TStrings;
alx_dat_data_1 : Tdate;
alx_dat_data_2 : TDate;
begin
try
alx_dat_data_1:= strtodate(self.Edit2.Text);
alx_dat_data_2:= strtodate(self.Edit3.Text);
alx_str_sql_texto1:= TStringList.Create();
alx_str_sql_texto1.Add('SELECT TOP 10 Cli_Id, Cli_Nome, Count(EE_EMP_ID) ');
alx_str_sql_texto1.Add('FROM clientes, emprestimos, emprest_x_exemp ');
alx_str_sql_texto1.Add('WHERE Cli_id = Emp_Cli_Id_Titular And Emp_id = EE_EMP_ID and Emp_Data between : And : ');
alx_str_sql_texto1.Add('GROUP BY Cli_Id, Cli_Nome ');
alx_str_sql_texto1.Add('ORDER BY Count(EE_EMP_ID) DESC , CLI_NOME ; ');
self.ADOQuery1.Active:= False;
self.ADOQuery1.SQL.Clear();
self.ADOQuery1.SQL:= alx_str_sql_texto1;
self.ADOQuery1.Parameters[0].DataType:= FTDate;
self.ADOQuery1.Parameters[0].Value:= alx_dat_data_1;
self.ADOQuery1.Parameters[1].DataType:= FTDate;
self.ADOQuery1.Parameters[1].Value:= alx_dat_data_2;
self.ADOQuery1.Active:= True;
except
on E: Exception do begin
showmessage('Ôpa, ocorreu um erro ao Pesquisar o conjunto Top Ten! Veja: ' + E.Message );
end;
end;
end;
//===================================================================================

Nenhum comentário: