none
Total de ocorrências de um valor em vários campos de uma tabela. RRS feed

  • Pergunta

  • Amigos

    Gostaria de saber se existe um comando SQL que me dá, por exemplo, quantas vezes o numero 2 aparece em todo o banco.

    Esse 2 pode aparecer em até 15 campos diferentes. Eu aprendi como se faz para contar em somente um campo e não no banco todo.

    A tabela é uma só. São 15 campos numéricos. O 2 pode aparecer várias vezes em 1 ou mais campos.

    Se não for possível com um SQL, poderia ser feito com vários?

    Obrigado.

    Taveira


    prof. Taveira

    • Movido Durval Ramos quinta-feira, 25 de setembro de 2014 13:51 Motivo: Aumentar possibilidade de solução
    quarta-feira, 24 de setembro de 2014 18:13

Respostas

  • Olá Durval.

    Eu tenho um banco Access com somente uma tabela, com 15 campos numéricos.

    Nesses campos aparecem números aleatórios entre 1 e 15. Eu gostaria de saber, por exemplo, quantos números x (por exemplo 5) aparecem na tabela toda.

    O número 5 pode estar em todos os 15 campos da tabela. É uma contagem.

    As duas sugestões recebidas dos colegas abaixo não funcionaram.

    É isso que estou tendo dificuldade em resolver.

    Obrigado pelo contato.

    Taveira


    prof. Taveira

    Taveira,

    Como eu não tenho Access instalado, não tenho como propor uma alternativa para você.

    Vou mover este tópico para "Office" no Fórum TechNet e sugiro que você também crie esta pergunta no Fórum "MS Community", que é um Fórum Microsoft específico para produtos Office. Segue o link:

    http://answers.microsoft.com/pt-br/office/forum?tab=Threads

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quinta-feira, 25 de setembro de 2014 13:51

Todas as Respostas

  • Taveira,

    Poderia explicar com maiores detalhes o que você está consultando e o que pretende encontrar, utilizando SQL?

    Assim todos na Comunidade poderão ajudar você a encontrar a solução.

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quarta-feira, 24 de setembro de 2014 18:51
  • Taveira,

    Veja se esse código resolve...

    create table #teste (campo1 int, campo2 int, campo3 int, campo4 int, campo5 int);
    insert #teste values (2,0,2,0,2);
    
    select	*
    into	#temp
    from	#teste
    unpivot
    (valor for campo in (campo1,campo2,campo3,campo4,campo5))as u
    
    
    select * from #teste;
    select * from #temp;
    
    select	count(*) as qtd
    from	#temp
    where	valor = 2


    Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote

    quarta-feira, 24 de setembro de 2014 18:53
  • Boa tarde,

    Taveira, você também pode experimentar mais ou menos da seguinte forma:

    select
        count(case when Coluna1 = 2 then 1 end) +
        count(case when Coluna2 = 2 then 1 end) +
        count(case when Coluna3 = 2 then 1 end) +
        count(case when Coluna4 = 2 then 1 end) +
        count(case when Coluna5 = 2 then 1 end) +
        count(case when Coluna6 = 2 then 1 end) +
        count(case when Coluna7 = 2 then 1 end) +
        count(case when Coluna8 = 2 then 1 end) +
        count(case when Coluna9 = 2 then 1 end) +
        count(case when Coluna10 = 2 then 1 end) +
        count(case when Coluna11 = 2 then 1 end) +
        count(case when Coluna12 = 2 then 1 end) +
        count(case when Coluna13 = 2 then 1 end) +
        count(case when Coluna14 = 2 then 1 end) +
        count(case when Coluna15 = 2 then 1 end) as Total
    from Tabela

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    quarta-feira, 24 de setembro de 2014 18:59
  • Olá Durval.

    Eu tenho um banco Access com somente uma tabela, com 15 campos numéricos.

    Nesses campos aparecem números aleatórios entre 1 e 15. Eu gostaria de saber, por exemplo, quantos números x (por exemplo 5) aparecem na tabela toda.

    O número 5 pode estar em todos os 15 campos da tabela. É uma contagem.

    As duas sugestões recebidas dos colegas abaixo não funcionaram.

    É isso que estou tendo dificuldade em resolver.

    Obrigado pelo contato.

    Taveira


    prof. Taveira

    quarta-feira, 24 de setembro de 2014 19:42
  • Olá Durval.

    Eu tenho um banco Access com somente uma tabela, com 15 campos numéricos.

    Nesses campos aparecem números aleatórios entre 1 e 15. Eu gostaria de saber, por exemplo, quantos números x (por exemplo 5) aparecem na tabela toda.

    O número 5 pode estar em todos os 15 campos da tabela. É uma contagem.

    As duas sugestões recebidas dos colegas abaixo não funcionaram.

    É isso que estou tendo dificuldade em resolver.

    Obrigado pelo contato.

    Taveira


    prof. Taveira

    Taveira,

    A minha solução e a do Gapimex funcionam no MS SQL Server.

    No Access eu não sei te responder...


    Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote

    quarta-feira, 24 de setembro de 2014 19:47
  • Tulio.

    Provavelmente é isso mesmo. Deu alguns erros de sintaxe no SQL.

    Mas valeu.

    EU estou mantendo um banco em Acceess porque é um banco muito pequeno e simples.

    Obrigado pela ajuda.

    Taveira


    prof. Taveira

    quarta-feira, 24 de setembro de 2014 19:59
  • Tulio.

    Provavelmente é isso mesmo. Deu alguns erros de sintaxe no SQL.

    Mas valeu.

    EU estou mantendo um banco em Acceess porque é um banco muito pequeno e simples.

    Obrigado pela ajuda.

    Taveira


    prof. Taveira

    Taveira,

    Se o seu banco é pequeno e simples, veja a possibilidade de migrar para o MS SQL Server Express (gratuito).


    Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote

    quarta-feira, 24 de setembro de 2014 20:20
  • Taveira,

    Não tenho experiência com o Access, mas experimente trocar o Case por IIF:

    select
        count(iif Coluna1 = 2, 1, null) +
        count(iif Coluna2 = 2, 1, null) +
        count(iif Coluna3 = 2, 1, null) +
        count(iif Coluna4 = 2, 1, null) +
        count(iif Coluna5 = 2, 1, null) +
        count(iif Coluna6 = 2, 1, null) +
        count(iif Coluna7 = 2, 1, null) +
        count(iif Coluna8 = 2, 1, null) +
        count(iif Coluna9 = 2, 1, null) +
        count(iif Coluna10 = 2, 1, null) +
        count(iif Coluna11 = 2, 1, null) +
        count(iif Coluna12 = 2, 1, null) +
        count(iif Coluna13 = 2, 1, null) +
        count(iif Coluna14 = 2, 1, null) +
        count(iif Coluna15 = 2, 1, null) as Total
    from Tabela

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    quarta-feira, 24 de setembro de 2014 20:56
  • Olá Durval.

    Eu tenho um banco Access com somente uma tabela, com 15 campos numéricos.

    Nesses campos aparecem números aleatórios entre 1 e 15. Eu gostaria de saber, por exemplo, quantos números x (por exemplo 5) aparecem na tabela toda.

    O número 5 pode estar em todos os 15 campos da tabela. É uma contagem.

    As duas sugestões recebidas dos colegas abaixo não funcionaram.

    É isso que estou tendo dificuldade em resolver.

    Obrigado pelo contato.

    Taveira


    prof. Taveira

    Taveira,

    Como eu não tenho Access instalado, não tenho como propor uma alternativa para você.

    Vou mover este tópico para "Office" no Fórum TechNet e sugiro que você também crie esta pergunta no Fórum "MS Community", que é um Fórum Microsoft específico para produtos Office. Segue o link:

    http://answers.microsoft.com/pt-br/office/forum?tab=Threads

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quinta-feira, 25 de setembro de 2014 13:51