Jump to content

(Resolvido) Soma em Access


Recommended Posts

Aee....  Espero que me ajudem...

Estou meio sem idéia para fazer isso.. e postei aqui, pois creio pode ser resolvido de várias formas, e não me importaria se tiver que criar algo em VBA.

Vamos lá....  Tem um banco de dados que tem dois campos chamados funcionários1 e funcionários2 , que se trata de colocar o nome de funcionários que fazem escoltas de pacientes em hospital.  Esse banco de dados tem mais efeito de cadastro e relatório, do que qualquer outra coisa.

O que eu preciso nele que não estou conseguindo fazer??  Preciso que seja contado o número de vezes que os funcionários aparecem na tabela.

Quando tem somente um campo, é fácil, tem consulta que pode ser criado especificamente para isso, porém com dois campos eu não consigo.  Não sei se estou me fazendo claro:

Func1        Func2

Joao          Maria

Maria        José

Carlos      João

joao aparece 2 vezes, maria 2 e jose 1 e carlos 1.

Alguém tem uma idéia para me ajudar???

Agradeço.

Link to comment
Share on other sites

Que tal uma consulta de agregação de uma união?

SELECT Func1  AS Funcionario, Count(*) AS Contagem FROM (SELECT Func1 FROM Escoltas UNION ALL SELECT Func2 FROM Escoltas)  GROUP BY Func1;

O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Link to comment
Share on other sites

Vamos lá...  eu tentei alterar o que me enviou e acho que algo deu errado...  Vamos lá.. vou passar todos os nomes reais

Tabela = Escolta

Campos a serem pesquisados (contar)

Campo 1 = Funcionário (texto 255)

Campo 2 = Funcionário2 (texto 255)

A tabela tem outros campos....  acho que perdi algo no seu código pois não consegui rodar com a substituição

Os campos estão na mesma tabela.

Agradeço!!!

🙂

Link to comment
Share on other sites

Então será:

SELECT Funcionário, Count(*) AS Contagem FROM (SELECT Funcionário FROM Escolta UNION ALL SELECT Funcionário2 FROM Escolta)  GROUP BY Funcionário;

Esta consulta devolve uma tabela com duas colunas (Funcionário e Contagem).

Nota:  Convém usar no nome das tabelas e dos campos apenas caracteres ASCII standard, evitando os caracteres com acentos.

O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Link to comment
Share on other sites

Perfeito!!!  Agradeço a sua ajuda... funcionou que é uma beleza...

Quanto a dica... você está certíssimo!!!  Mas como não criei o BD, estou alterando projeto anterior, acho que a pessoa fez desse jeito, e para alterar todas as ligações, vai dar muito trabalho, portanto, nesse vai ficar assim.....

Mas valeu mesmo!!!

cumps

Link to comment
Share on other sites

Estou reabrindo este tópico que tinha sido resolvido, porque preciso de mais uma ajuda....

A consulta deu certinho, porém tem gerado um determinando problema para mim.....  após passar os dados que o cliente queria, eu chamei as consultas, e os relatórios (gráfico), porém apresentou algo que não pensei que poderia acontecer...  o que aqcontece é o seguinte...  ele também trás campos em branco e conta eles... 

seguindo os exemplos que dei anteriormente:

Funcionário    Funcionário2

Joao              Maria

Maria            José

José              João

João

Maria

José

Sim, ele está contando esses 3 campos brancos e no gráfico, ele põe como fatia 1 e na consulta como branco.

Teria como manipular esse código SQL para que ele não conte campos em branco (vazio)??

Poderia me ajudar, urgentemente???

Agradeço

Link to comment
Share on other sites

Já consegui, e caso alguém precise, deixo a codificação:

SELECT [%$##@_Alias].Funcionário, Count(*) AS Contagem
FROM [sELECT Funcionário FROM Escolta UNION ALL SELECT Funcionário2 FROM Escolta]. AS [%$##@_Alias]
GROUP BY [%$##@_Alias].Funcionário
HAVING ((([%$##@_Alias].Funcionário)<>""));
Link to comment
Share on other sites

Se os campo em branco são nulos fica assim:

SELECT Funcionário, Count(*) AS Contagem FROM (SELECT Funcionário FROM Escolta UNION ALL SELECT Funcionário2 FROM Escolta) WHERE Funcionário IS NOT NULL  GROUP BY Funcionário;

Se forem texto com comprimento zero ("") :

SELECT Funcionário, Count(*) AS Contagem FROM (SELECT Funcionário FROM Escolta UNION ALL SELECT Funcionário2 FROM Escolta) WHERE Funcionário <>""  GROUP BY Funcionário;

O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Link to comment
Share on other sites

ele funcionou como cumprimento zero (""), o código null nem testei.

pra falar a verdade com a codificalção que passei... 

nas verdade o campo não foi preenchido, eu entenderia que seria null, porém funcionou com "".  Vai entender.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.