Somar Registros
Estou desenvolvendo um pequeno sistema para calcular quantas vezes durante o ano os funcionarios de uma loja alcançaram o primeiro lugar nas vendas . Criei uma tabela com o nome de tblFuncionario e os seguintes campos: nome, cod, mes1, mes2, mes3, mes4, ate mes12, pois bem estou em duvida na hora de somar as vezes em que cada funcionario alcançou o primeiro lugar, vou mostrar o que quero na tabelinha abaixo:
OBS: Os numeros ficaram desalinhados nas colunas, não consegui coloca-los um em baixo do outro, mas acho que da para entender o que eu quero. espero que alguem possa me mostrar como fazer essa soma. obrigado.
COD M1 M2 M3 M4 M5 M6 M7 M8 M9 [b:55d0601f07]TOTAL[/b:55d0601f07]
001 00 01 00 00 00 00 00 01 00 [b:55d0601f07]02[/b:55d0601f07]
002 01 00 01 00 00 00 01 00 00 [b:55d0601f07]03[/b:55d0601f07]
003 00 00 00 01 01 01 00 00 01 [b:55d0601f07]04[/b:55d0601f07]
OBS: Os numeros ficaram desalinhados nas colunas, não consegui coloca-los um em baixo do outro, mas acho que da para entender o que eu quero. espero que alguem possa me mostrar como fazer essa soma. obrigado.
COD M1 M2 M3 M4 M5 M6 M7 M8 M9 [b:55d0601f07]TOTAL[/b:55d0601f07]
001 00 01 00 00 00 00 00 01 00 [b:55d0601f07]02[/b:55d0601f07]
002 01 00 01 00 00 00 01 00 00 [b:55d0601f07]03[/b:55d0601f07]
003 00 00 00 01 01 01 00 00 01 [b:55d0601f07]04[/b:55d0601f07]
Anonymous
Curtidas 0
Respostas
Carnette
01/03/2003
Acredito que uma CONSULTA(query) seleção resolva a pontuação e a colocação dos funcionarios
Coloque um componente QUERY e um DATASOURCE e a seguinte frase SQL...
SELECT tblFuncionario.Mes1, tblFuncionario.Mes2, tblFuncionario.Mes3, tblFuncionario.Mes4, tblFuncionario.Mes5, tblFuncionario.Mes6, tblFuncionario.Mes7, tblFuncionario.Mes8, tblFuncionario.Mes9, tblFuncionario.Mes10, tblFuncionario.Mes11, tblFuncionario.Mes12,
tblFuncionario.Mes1 + tblFuncionario.Mes2 + tblFuncionario.Mes3 + tblFuncionario.Mes4 + tblFuncionario.Mes5 + tblFuncionario.Mes6 + tblFuncionario.Mes7 + tblFuncionario.Mes8 + tblFuncionario.Mes9 + tblFuncionario.Mes10 + tblFuncionario.Mes11 + tblFuncionario.Mes12 AS vTotal FROM tblFuncionario ORDER BY tblfuncionari.vTotal
Coloque um componente QUERY e um DATASOURCE e a seguinte frase SQL...
SELECT tblFuncionario.Mes1, tblFuncionario.Mes2, tblFuncionario.Mes3, tblFuncionario.Mes4, tblFuncionario.Mes5, tblFuncionario.Mes6, tblFuncionario.Mes7, tblFuncionario.Mes8, tblFuncionario.Mes9, tblFuncionario.Mes10, tblFuncionario.Mes11, tblFuncionario.Mes12,
tblFuncionario.Mes1 + tblFuncionario.Mes2 + tblFuncionario.Mes3 + tblFuncionario.Mes4 + tblFuncionario.Mes5 + tblFuncionario.Mes6 + tblFuncionario.Mes7 + tblFuncionario.Mes8 + tblFuncionario.Mes9 + tblFuncionario.Mes10 + tblFuncionario.Mes11 + tblFuncionario.Mes12 AS vTotal FROM tblFuncionario ORDER BY tblfuncionari.vTotal
GOSTEI 0
Anonymous
01/03/2003
Amigo valeu pela sua atenção, mas infelismente não funcionou, se você ou outro colega do forum tiver uma outra forma para fazer isso , valeu obrigado.
GOSTEI 0
Laureano Pereira
01/03/2003
Amigo,
vamos ver se eu entendi:
você tem os campos dos meses, mas eu não sei que informacao tem ali.
pode ser o total das vendas do mes do funcionario ou entao a colocacao dele naquele mes.
1) Se for a colocacao no mes, tipo 1º lugar, 2º lugar..., voce pode criar um campo calculado na tbl, e no evento oncalcfields criar uma funcao que some somente as vezes que ele ficou em primeiro.
assim voce teria o numero de vezes que o funcionario tirou 1º lugar no periodo.
2) Se for o total de vendas no mes: crie uma tabela temporaria para colocar nos campos dos meses a colocacao do funcionario. E entao faça o sugerido no item 1.
Espero ter ajudado.
Abraços
vamos ver se eu entendi:
você tem os campos dos meses, mas eu não sei que informacao tem ali.
pode ser o total das vendas do mes do funcionario ou entao a colocacao dele naquele mes.
1) Se for a colocacao no mes, tipo 1º lugar, 2º lugar..., voce pode criar um campo calculado na tbl, e no evento oncalcfields criar uma funcao que some somente as vezes que ele ficou em primeiro.
assim voce teria o numero de vezes que o funcionario tirou 1º lugar no periodo.
2) Se for o total de vendas no mes: crie uma tabela temporaria para colocar nos campos dos meses a colocacao do funcionario. E entao faça o sugerido no item 1.
Espero ter ajudado.
Abraços
GOSTEI 0
Anonymous
01/03/2003
Amigo Laureano ,
É justamente isso a colocacao no mes, tipo 1º lugar, 2º lugar..., Se não for pedir demais, voce poderia detalhar melhor porque eu não sei fazer essa função que some somente as vezes que ele ficou em primeiro.
Um abraço e até mais. Valeuuuuuuu. :lol:
É justamente isso a colocacao no mes, tipo 1º lugar, 2º lugar..., Se não for pedir demais, voce poderia detalhar melhor porque eu não sei fazer essa função que some somente as vezes que ele ficou em primeiro.
Um abraço e até mais. Valeuuuuuuu. :lol:
GOSTEI 0
Adilsond
01/03/2003
Imaginando (´Seria tão bom não precisar imaginar´) que sua base seja paradox e que os campos cod e mes sejam numericos. Atualizei a query do carnette para:
SELECT tblFuncionario.´cod´,
SUM(tblFuncionario.´Mes1´) AS vMes1,
SUM(tblFuncionario.´Mes2´) AS vMes2,
SUM(tblFuncionario.´Mes3´) AS vMes3,
SUM(tblFuncionario.´Mes4´) AS vMes4,
SUM(tblFuncionario.´Mes5´) AS vMes5,
SUM(tblFuncionario.´Mes6´) AS vMes6,
SUM(tblFuncionario.´Mes7´) AS vMes7,
SUM(tblFuncionario.´Mes8´) AS vMes8,
SUM(tblFuncionario.´Mes9´) AS vMes9,
SUM(tblFuncionario.´Mes10´) AS vMes10,
SUM(tblFuncionario.´Mes11´) AS vMes11,
SUM(tblFuncionario.´Mes12´) AS vMes12,
SUM(tblFuncionario.´Mes1´ +
tblFuncionario.´Mes2´ +
tblFuncionario.´Mes3´ +
tblFuncionario.´Mes4´ +
tblFuncionario.´Mes5´ +
tblFuncionario.´Mes6´ +
tblFuncionario.´Mes7´ +
tblFuncionario.´Mes8´ +
tblFuncionario.´Mes9´ +
tblFuncionario.´Mes10´ +
tblFuncionario.´Mes11´ +
tblFuncionario.´Mes12´) AS vTotal
FROM tblFuncionario
GROUP BY tblFuncionario.´cod´
ORDER BY 14 desc
SELECT tblFuncionario.´cod´,
SUM(tblFuncionario.´Mes1´) AS vMes1,
SUM(tblFuncionario.´Mes2´) AS vMes2,
SUM(tblFuncionario.´Mes3´) AS vMes3,
SUM(tblFuncionario.´Mes4´) AS vMes4,
SUM(tblFuncionario.´Mes5´) AS vMes5,
SUM(tblFuncionario.´Mes6´) AS vMes6,
SUM(tblFuncionario.´Mes7´) AS vMes7,
SUM(tblFuncionario.´Mes8´) AS vMes8,
SUM(tblFuncionario.´Mes9´) AS vMes9,
SUM(tblFuncionario.´Mes10´) AS vMes10,
SUM(tblFuncionario.´Mes11´) AS vMes11,
SUM(tblFuncionario.´Mes12´) AS vMes12,
SUM(tblFuncionario.´Mes1´ +
tblFuncionario.´Mes2´ +
tblFuncionario.´Mes3´ +
tblFuncionario.´Mes4´ +
tblFuncionario.´Mes5´ +
tblFuncionario.´Mes6´ +
tblFuncionario.´Mes7´ +
tblFuncionario.´Mes8´ +
tblFuncionario.´Mes9´ +
tblFuncionario.´Mes10´ +
tblFuncionario.´Mes11´ +
tblFuncionario.´Mes12´) AS vTotal
FROM tblFuncionario
GROUP BY tblFuncionario.´cod´
ORDER BY 14 desc
GOSTEI 0
Laureano Pereira
01/03/2003
Crie um campo calculado para a tabela que voce vai usar, tipo totalvezes,
no evento onCalcFields da tabela:
var
ntotal: integer;
begin
nTotal := 0;
if (nmes1 = 1) then
ntotal = nTotal+1;
if (nmes2 = 1) then
ntotal = nTotal+1;
if (nmes3 = 1) then
ntotal = nTotal+1;
if (nmes4 = 1) then
ntotal = nTotal+1;
if (nmes5 = 1) then
ntotal = nTotal+1;
if (nmes6 = 1) then
ntotal = nTotal+1;
if (nmes7 = 1) then
ntotal = nTotal+1;
if (nmes8 = 1) then
ntotal = nTotal+1;
if (nmes9 = 1) then
ntotal = nTotal+1;
if (nmes10 = 1) then
ntotal = nTotal+1;
if (nmes1 = 11) then
ntotal = nTotal+1;
if (nmes2 = 12) then
ntotal = nTotal+1;
totalvezes := nTotal;
end;
Acho que é isso.
pode precisar de alguma midificação.
Abraços
no evento onCalcFields da tabela:
var
ntotal: integer;
begin
nTotal := 0;
if (nmes1 = 1) then
ntotal = nTotal+1;
if (nmes2 = 1) then
ntotal = nTotal+1;
if (nmes3 = 1) then
ntotal = nTotal+1;
if (nmes4 = 1) then
ntotal = nTotal+1;
if (nmes5 = 1) then
ntotal = nTotal+1;
if (nmes6 = 1) then
ntotal = nTotal+1;
if (nmes7 = 1) then
ntotal = nTotal+1;
if (nmes8 = 1) then
ntotal = nTotal+1;
if (nmes9 = 1) then
ntotal = nTotal+1;
if (nmes10 = 1) then
ntotal = nTotal+1;
if (nmes1 = 11) then
ntotal = nTotal+1;
if (nmes2 = 12) then
ntotal = nTotal+1;
totalvezes := nTotal;
end;
Acho que é isso.
pode precisar de alguma midificação.
Abraços
GOSTEI 0
Laureano Pereira
01/03/2003
Crie um campo calculado para a tabela que voce vai usar, tipo totalvezes,
no evento onCalcFields da tabela:
var
ntotal: integer;
begin
nTotal := 0;
if (nmes1 = 1) then
ntotal = nTotal+1;
if (nmes2 = 1) then
ntotal = nTotal+1;
if (nmes3 = 1) then
ntotal = nTotal+1;
if (nmes4 = 1) then
ntotal = nTotal+1;
if (nmes5 = 1) then
ntotal = nTotal+1;
if (nmes6 = 1) then
ntotal = nTotal+1;
if (nmes7 = 1) then
ntotal = nTotal+1;
if (nmes8 = 1) then
ntotal = nTotal+1;
if (nmes9 = 1) then
ntotal = nTotal+1;
if (nmes10 = 1) then
ntotal = nTotal+1;
if (nmes11 = 1) then
ntotal = nTotal+1;
if (nmes12 = 1) then
ntotal = nTotal+1;
totalvezes := nTotal;
end;
no evento onCalcFields da tabela:
var
ntotal: integer;
begin
nTotal := 0;
if (nmes1 = 1) then
ntotal = nTotal+1;
if (nmes2 = 1) then
ntotal = nTotal+1;
if (nmes3 = 1) then
ntotal = nTotal+1;
if (nmes4 = 1) then
ntotal = nTotal+1;
if (nmes5 = 1) then
ntotal = nTotal+1;
if (nmes6 = 1) then
ntotal = nTotal+1;
if (nmes7 = 1) then
ntotal = nTotal+1;
if (nmes8 = 1) then
ntotal = nTotal+1;
if (nmes9 = 1) then
ntotal = nTotal+1;
if (nmes10 = 1) then
ntotal = nTotal+1;
if (nmes11 = 1) then
ntotal = nTotal+1;
if (nmes12 = 1) then
ntotal = nTotal+1;
totalvezes := nTotal;
end;
GOSTEI 0