Fórum Erro no select sum #456829
26/09/2013
0
Close;
SQL.Clear;
SQL.Add('SELECT SUM(QT_Material) AS total FROM servicos_clientes Cod_Cliente=:A');
Parameters.ParamByName('A').Value := StrtoInt(Edit_Cod_Cliente.Text);
Open;
ExecSQL;
qt_material := total;
Como faço pra variável qt_material receber o valor da soma no select???
Obrigado pela ajuda.
Fabricio Luciano
Curtir tópico
+ 0Posts
26/09/2013
Araujo Junior.
var
qt_material: Double;
begin
qry.Close;
qry.SQL.Clear;
qry.SQL.Add('SELECT SUM(QT_Material) AS total FROM servicos_clientes Cod_Cliente=:A');
qry.Parameters.ParamByName('A').Value := StrtoInt(Edit_Cod_Cliente.Text);
qry.Open;
qt_material := qrytotal.AsFloat;
end;Gostei + 0
27/09/2013
Sérgio Assunção
qry.SQL.Add('SELECT SUM(QT_Material) AS total FROM servicos_clientes where Cod_Cliente=:A');Sérgio
Gostei + 0
27/09/2013
Fabricio Luciano
Gostei + 0
27/09/2013
Deivison Melo
Se estivessemos utilizando o oracle isso seria feito com o uso de um select into
select author_last_name into v_authName FROM author
Onde a variável: "v_authName" receberia o valor DO campo: "author_last_name".
PS. utilizei apenas como exemplo, não é uma boa prática de programação!
Se um dia precisar usar, faça a utilização de cursores no oracle!
Abração e bons códigos!!
Gostei + 0
27/09/2013
Fabiano Carvalho
Exempo no SQL Server..
--declaro Declare @variavel int --defino o valor set @variavel = (select 1); --exibo-a select @variavel
Vale lembrar que a variavel só pode ser utilizada naquela sessão, caso feche e tente abrir outra conexão, será necessario defini-la novamente!
Gostei + 0
27/09/2013
Fabricio Luciano
Gostei + 0
28/09/2013
Fabricio Luciano
procedure TForm_Principal.Tbl_Principal_ExcluirClick(Sender: TObject);
var
codigo_estoque, qt_material, qt_dispo_estoque, total: Integer;
begin
if Application.MessageBox('Deseja realmente EXCLUIR o registro?','Aviso do Sistema',MB_YESNO) = idYes then
with Data_Module.Query_Servicos_Clientes do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM servicos_clientes WHERE Cod_Cliente=:A');
Parameters.ParamByName('A').Value := StrtoInt(Edit_Cod_Cliente.Text);
Open;
//ExecSQL;
while not Data_Module.Query_Servicos_Clientes.Eof do
begin
codigo_estoque := Data_Module.Query_Servicos_ClientesCod_Estoque.Value;
qt_material := Data_Module.Query_Servicos_ClientesQT_Material.Value;
with Data_Module.Query_Estoque do
begin
close;
sql.Clear;
SQL.Add('SELECT * FROM Estoque WHERE Cod_Estoque=:A');
Parameters.ParamByName('A').Value := codigo_estoque;
Open;
ExecSQL;
qt_dispo_estoque := Data_Module.Query_EstoqueQuant_Dispo.Value;
Close;
total := (qt_material + qt_dispo_estoque);
sql.Clear;
sql.Add('UPDATE Estoque SET Quant_Dispo=:B WHERE Cod_Estoque=:A');
Parameters.ParamByName('A').Value := codigo_estoque;
Parameters.ParamByName('B').Value := total;
ExecSQL;
end;
end;
end;
//############################################################
// ROTINA DE EXCLUSÃO DO CADASTRO DE CLIENTE E SERVICOS
with Data_Module.Query_Cadastro_Clientes do
begin
close;
sql.Clear;
sql.Add('DELETE FROM clientes WHERE Cod_Cliente=:A');
Parameters.ParamByName('A').Value := StrtoInt(Edit_Cod_Cliente.Text);
ExecSQL;
with Data_Module.Query_Servicos_Clientes do
begin
close;
sql.Clear;
sql.Add('DELETE FROM servicos_clientes WHERE Cod_Cliente=:A');
Parameters.ParamByName('A').Value := StrtoInt(Edit_Cod_Cliente.Text);
ExecSQL;
end;
Data_module.Query_Clientes.Close;
Data_module.Query_Clientes.Open;
data_module.Query_Clientes.MoveBy((StrtoInt(Edit_Cod_Cliente.Text)) - 2);
// Carregando as caixas de texto com os valores do Banco de Dados
Edit_Cod_Cliente.Text := InttoStr(data_module.Query_ClientesCod_Cliente.Value);
Edit_Nome_Cliente.Text := data_module.Query_ClientesNome_Cliente.Value;
MaskEdit_CPF_CNPJ_Cliente.Text := data_module.Query_ClientesCPF_CNPJ.Value;
Edit_Logradouro_Cliente.Text := data_module.Query_ClientesLogradouro.Value;
Edit_Num_Cliente.Text := data_module.Query_ClientesNum.Value;
Edit_Complemento_Cliente.Text := data_module.Query_ClientesComplemento.Value;
Combo_UF_Cliente.Text := data_module.Query_ClientesUF.Value;
Edit_Bairro_Cliente.Text := data_module.Query_ClientesBairro.Value;
Edit_Cidade_Cliente.Text := data_module.Query_ClientesCidade.Value;
MaskEdit_CEP_Cliente.Text := data_module.Query_ClientesCEP.Value;
MaskEdit_Telefone_Cliente.Text := data_module.Query_ClientesTelefone.Value;
MaskEdit_Celular_Cliente.Text := data_module.Query_ClientesCelular.Value;
Edit_Email_Cliente.Text := data_module.Query_ClientesEmail.Value;
MaskEdit_Data_Cadastro_Cliente.Text := data_module.Query_ClientesData_Cadastro.Value;
Combo_Tipo_Cliente.Text := data_module.Query_ClientesTipo_Cliente.Value;
//###############################################
// Atualiza o DBGrid de Serviços
with Data_Module.Query_Servicos_Clientes do
begin
close;
sql.Clear;
sql.Add('SELECT * FROM servicos_clientes WHERE Cod_Cliente =:Cod_Cliente');
Parameters.ParamByName('Cod_Cliente').Value := StrtoInt(Edit_Cod_Cliente.Text);
Active := true;
Open;
DBGrid_Servicos.DataSource := data_module.DataSource_Servicos_Clientes;
//###############################################
if data_module.Query_Clientes.Bof = true then application.MessageBox('Início da Tabela', 'Aviso do Sistema', MB_OK);
end;
Application.MessageBox('Registro deletado com sucesso!!!','Aviso do Sistema',MB_OK);
end;
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)