Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Soma


D@rk

Pergunta

Bom dia,

Estou afastado do fórum durante um bom tempo, mas precisei retomar algumas atividades no Access acabou que estou voltando. Queria aproveitar a oportunidade e deixar um abraço pro Mr. MALJ que me ajudou bastante na época, hoje estou precisando novamente de um help :P

O que acontece, eu tenho um formulário com um check-box para escolher 2 alternativas: Administrativo ou Pedagógico. Até ai tudo bem, funciona normalmente. Só que eu preciso fazer alguma rotina que me retorne depois quantas pessoas estão como Administrativo ou Pedagógico.

Por ex: na tabela funcionários tem vários campos inclusive o Nome do funcionário e o status dele (se é do administrativo, ou pedagógico)

Eu preciso ter uma consulta que fizesse isso. Que retornasse quantos funcionários estão cadastrados como administrativo ou pedagógico.

Ex:

Administrativo: 100

Pedagógico: 85

Tentei criar um campo nessa tabela e tentei montar uma rotina em VB mas esqueci muito a sintaxe do VB não consegui.

Grande Abraço,

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

Acredito que sim. Vou ser mais específico. Eu tenho um formulário de funcionários. Neste formulário os 3 primeiros campos são: Nome / Dt. Nasc / Idade

Aonde a Dt. Nasc entra em forma de data mesmo ex: 00/00/0000 e o campo Idade (ao receber o foco) já calcula a idade em número.

Dentre este cenário, eu preciso retornar em uma consulta os funcionários que tem a idade entre 18 e 45 anos usando o campo Idade. Por ex eu tenho que retornar só estes funcionários entre 18 e 45 e tenho q calcular o somatório. Ex: funcionários entre 18 e 45: 50.

[]´s

Editado por MrMALJ
QUOTE desnecessário!
Link para o comentário
Compartilhar em outros sites

  • 0

bom, nas consultas existe o campo criterio para cada campo..

você tem q criar uma consulta pra calcular a idade baseado na data de nascimento..

depois outra consulta para filtrar essa idade..

usando o campo criterio:

ENTRE 18 E 45

ou você pode criar um form onde você entra as idades parametro..

ENTRE fomulario!campo1 E formulario!campo2

sobre o dlookup, a sintaxe é:

dlookup(CAMPO, FONTE, CRITERIO)

procure aqui no forum, existem milhares de exemplos usando dlookup

vlw

Editado por Humm
Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado pela resposta Humm.

Na verdade o critério ENTRE 18 e 45 já tenho. Ele me retorna da seguinte forma:

Setor ------------------Idade

Administrativo--------- 23

Pedagogico --------- 24

Administrativo --------- 39

Administrativo ---------32

São 2 campos, um Setor e outro Idade. Até ai beleza. Só que eu preciso agora (BASEADO NO RESULTADO ACIMA), do somatório disso.

Baseado no exemplo acima, seria:

Administrativo: 3

Pedagogico: 1

Ou seja, pegar a quantidade e pessoas nessa faixa de idade de cada setor. Esse é o meu galho, entendeu chefe?

o dlookup eu utilizaria pra isso?

Abs,

Editado por MrMALJ
QUOTE desnecessário!
Link para o comentário
Compartilhar em outros sites

  • 0

para contar registros, usa-se Count(*)

ahe você combina c/ o(s) criterio(s)

ex: select count(clientes) as "clientes de são paulo"

from tabela

where cidade = "são Paulo"

essa variavel ("as") é legal p/ você já ir visualizando o resultado

no teu caso você deve ainda adicionar o group by p/ q a conta seja feita por setor;

tipo assim:

select count(funcionario) as "funcionarios selecionados"

form tabela

where idade between (criterio1) and (criterio2)

group by setor

n testei, mas tentahe...

(eu tb faz tempo q n mexo + c/ access; nada contra, mas agora estou estudando tb MySQL e SQL Server)

falou, fui..

Editado por Marcelo_2
Link para o comentário
Compartilhar em outros sites

  • 0

Eu entendi +/-

Se você ou alguém puder me ajudar, agradeço. Eu criei uma nova consulta em modo Sql, com os seguintes dados:

select count(funcionarios) as "funcionarios selecionados"

form funcionarios

where idade between (18) and (45)

group by setor

Não consigo salvar porque dá erro sintaxe.

Abs.

Editado por MrMALJ
QUOTE desnecessário, referente a resposta imediatamente anterior. Favor utilizar RESP. RÁPIDA OU RESPONDER no fim do tópico.
Link para o comentário
Compartilhar em outros sites

  • 0

cara.. mals ahe.. esquece os parenteses..

seguinte, p/ ganharmos tempo (eu e vc) fiz 2 consultas;

a 1ª c chama "conta_por_idade" seleciona os funcionarios por idd (claro):

SELECT empresa.nome_funcionario, empresa.setor
FROM empresa
WHERE (((empresa.idade) Between 18 And 50));
a 2ª conta os funcionarios divididos por setor:
SELECT count(nome_funcionario) as "funcionarios selecionados"
FROM conta_por_idade
group by setor;

(no teste q eu fiz, tem 1 funcionario em 1 setor e 2 em outro, deu certinho, ok?)

[ ]

Editado por Marcelo_2
Link para o comentário
Compartilhar em outros sites

  • 0

Como não temos maiores detalhes das suas tabelas vou tentar ajuda-lo utilizando sua propria expressão: (note que você colocou FORM e não FROM)

select setor, count(funcionarios) as "funcionarios selecionados"

from funcionarios

where idade between (18) and (45)

group by setor;

Isso deve funcionar.

Link para o comentário
Compartilhar em outros sites

  • 0

Mestre,

Em relação a MP, desculpe ^^

A consulta ainda não esta mostrando, mostrou apenas o "Administrativo" mas o pessoal do setor "Pedagogico" não.

Quanto a minha dúvida não consegui atingir o meu objetivo ainda. Vou dar os dados precisos do meu BD:

Eu tenho uma tabela chamada funcionarios, com diversos campos. Os campos que eu preciso para essa operação são:

Funcionário / Dt. Nascimento / Idade / Setor (São esses 4 campos)

Supondo que eu tenho um cadastro nesta tabela funcionarios de 100 registros, dos quais 60 são do Administrativos e 40 são Pedagogicos.

Eu queria o retorno em um relatório, mas eu acredito que preciso fazer a consulta como estamos vendo primeiramente.

Retorno:

Administrativo: 60

Pedagogico: 40

Eu tenho outras 3 consultas com o mesmo objetivo, somar a quantidade e exibir somente o resultado, assim como este acima. Só precisava matar um desses.

Mais uma vez, obrigado pela ajuda.

Aguardo novamente ajuda de vocês.

Abração!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Mestre,

Em relação a MP, desculpe ^^

Eu queria mostrar isso em um relatório, basta eu fazer um relatório encima desta consulta, correto?

Quanto a minha dúvida não consegui atingir o meu objetivo ainda. Vou dar os dados precisos do meu BD:

Eu tenho uma tabela chamada funcionarios, com diversos campos. Os campos que eu preciso para essa operação são:

Funcionário / Dt. Nascimento / Idade / Setor (São esses 4 campos)

Eu queria o retorno em um relatório, mas eu acredito que preciso fazer a consulta como estamos vendo primeiramente.

Retorno:

Minha tabela abaixo e o resultado que eu espero, sendo em um formulário ou em um relatório:

ex01.jpg

De acordo com a minha tabela acima, o resultado esperado seria:

Administrativo: 4

Pedagogico: 0

Eu tenho outras 3 consultas com o mesmo objetivo, somar a quantidade e exibir somente o resultado, assim como este acima. Só precisava matar um desses.

Mais uma vez, obrigado pela ajuda.

Aguardo novamente ajuda de vocês.

Abração!!!

Editado por D@rk
Link para o comentário
Compartilhar em outros sites

  • 0

Mestre já consegui.... tá resolvido obg. Só falta consulta, ess eu vou ter q agrupar por 2 campos.

Por exemplo, o caso que estavamos falando q é entre 18 e 45 eu agrupo pelo setor com este código abaixo:

SELECT setor, count(funcionarios) AS ["18 à 45 anos"]

FROM funcionarios

WHERE idade between (18) and (45)

GROUP BY setor;

Isso me dá um retorno seguinte:

ex:

Setor

-------

Adminst - 12

Pedagogico - 30

Só que eu preciso assim agora:

que ele agrupe pelo campo "setor" acima e dentro dele agrupe pelo tipo de exame também.

O retorno seria assim:

Setor

-------

Adminst / tipo de exame /

Pedagogico / tipo de exame /

ex:

Administ / periodico / 15

Pedagogico / periodico / 20

Como eu resolveria essa consulta? primeiro eu tenho q agrupar pelo setor pra saber se é pedagogico ou administrativo e depois saber qual é o tipo de exame: periodico, admissional, demissional, etc......

Consulta 2: essa eu acredito que é mais fácil. Eu tenho um campo "Data" na tabela de funcionários. Esse campo Data é a data do exame. No final do formulário, eu escolho entre 06, 12 ou 14 meses. Ou seja eu queria que o novo campo quando receber foco, calculasse.

Se a Data do exame é 20/01/2011 e no outro eu escolher 06 meses, ele já calcula automaticamente no campo Data_proxexame já aparecer com a data de 6 meses posteriores. Ficaria então como: 20/07/2011.

Abs.

Editado por MrMALJ
QUOTE desnecessário favor utilizar botão RESP. RÁPIDA
Link para o comentário
Compartilhar em outros sites

  • 0

Acredito que você está utilizando essa consulta pra gerar relatório, então basta que você utilize as opções de agrupamento a nivel de relatório para agrupar do jeito que deseja.

Sua duvida inicial foi resolvida se sim vou colocar esse tópico como resolvido.

Link para o comentário
Compartilhar em outros sites

  • 0

Mestre, o assunto principal foi resolvido. Obrigado a você e as outras ajudas.

Utilizando os critérios de consulta acima, utilizei os mesmos para outra consulta como esta abaixo:

SELECT setor, count(funcionarios) AS ["exames normais"]

FROM funcionarios

WHERE trigliceridio='normal'

GROUP BY setor;

Eu queria saber o seguinte, eu preciso fazer essa mesma consulta (fora o trigliceridio) para colesterol, glicemia, eas, parasitologico e rx. Eu tentei jogar um and mas não adiantou. Qual a sintaxe correta para eu nesta mesma consulta pegar todos os campos e não só o trigliceridio? senão vou ter q fazer 5 ou 6 consultas a mais.

Abs,

Link para o comentário
Compartilhar em outros sites

  • 0

Fera sua duvida principal foi resolvida, para outrs duvidas crie um novo tópico casa não encontre a solução em nenhum dos muitos já existentes. A expessão a seguir deve fazer o que quer.

SELECT setor, count(funcionarios) AS ["exames normais"]
FROM funcionarios
WHERE trigliceridio<>'colesterol' and trigliceridio<>'glicemia' and trigliceridio<>'eas' and trigliceridio<>'parasitologico' and trigliceridio<>'rx'
GROUP BY setor;

Caso não dê certo e não encontre a solução para isso na busca, favor criar novo tópico.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...