Somar Colunas

Delphi

Banco de Dados

Firebird

09/05/2019

Bom dia!!!

Gostaria de saber como faço para somar a quantidade que o número aparece salvo na tabela

Tenho a Tabela Jogo, nela tenho!!!

1Dezena | 2Dezena | 3Dezena | 4Dezena | 5Dezena | 6Dezena
1 5 10 3 18 22
4 6 10 5 28 12
2 29 2 4 10 38
1 22 5 6 18 42
3 19 8 10 23 54
3 18 22 4 24 23



Ai como somaria
1 Dezena
1 - Apareceu 2 vezes
2 - Apareceu 1 vez
3 - Apareceu 2 vezes
4 - Apareceu 1 vez


Como eu fazeria essa soma em cada coluna da tabela

No aguardo!!!

Grato
Bruno Henrique

Bruno Henrique

Curtidas 0

Respostas

Bruno Henrique

Bruno Henrique

09/05/2019

Alguém saberia me dizer?
GOSTEI 0
Alberto

Alberto

09/05/2019

Você vai precisar armazenar a informação em algum lugar
Uma tabela por exemplo:

DEZENA | QUANTIDADE
-----------------------
Var Campos:Array[1..6] of String;
       n:Integer; Campo:String;

Campos[1] := 'Dezena1';
Campos[2] := 'Dezena2';
Campos[3] := 'Dezena3';
Campos[4] := 'Dezena4';
Campos[5] := 'Dezena5';
Campos[6] := 'Dezena6';

Jogo.First;
While NOT Jogo.Eof Do Begin
     For n := 1 to 6 do Begin
          Campo := Campos[n];
         IF Tabela.Locate('Dezena', Campo, [] ) Then Begin
              Tabela.Edit;
              TabelaQuandidade.Value := TabelaQuandidade.Value + 1
              Tabela.Post;
         End Else Begin
              Tabela.Append;
              TabelaDezena.Value := Jogo.FieldbyName(Campo).Value;
              TabelaQuandidade.Value := TabelaQuandidade.Value + 1
              Tabela.Post;
         End;
   End;
    Jogo.Next;
End;
GOSTEI 0
Leonardo Rocha

Leonardo Rocha

09/05/2019

Fiz essa procedure com apenas a primeira e segunda dezena. para fazer com as 6 é só repetir a parte do codigo. Testa e v s é isso mesmo q vc precisa.
set term#;
create or alter procedure dev1_t
returns
(
qnt integer,
dezena varchar(20),
campo varchar(20)
)
as
begin

campo = 'DEZENA1';
for select count(*) as qnt_1,dezena_1 from dev1 group by 2 order by dezena_1 into :qnt,dezena do
suspend;

campo = 'DEZENA2';
for select count(*) as qnt_2,dezena_2 from dev1 group by 2 order by dezena_2 into :qnt,dezena do
suspend;



end
#
select * from dev1_t
GOSTEI 0
POSTAR