none
Contar dados de tabelas diferentes RRS feed

  • Pergunta

  • Pessoal,

    Tenho 2 tabelas..

    a primeira é uma lista de erros que podem acontecer na aplicação

    e a outra sao os erros que ocorreram..

    Preciso montar um select que me mostre quantas vezes os erros da tabela 1 apareceram na tabela 2...

    tentei montar mas nao consegui referenciar a segunda no like..

    alguem pode me ajudar?

    terça-feira, 19 de novembro de 2013 15:38

Respostas

  • Tente assim:

     SELECT T1.Descricao, COUNT(*) as TOTAL FROM TabErros T1 INNER JOIN Erros T2 ON T2.Comentarios LIKE '%'+LTRIM(RTRIM(T1.Descricao))+'%' GROUP BY T1.Descricao


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    terça-feira, 19 de novembro de 2013 18:04

Todas as Respostas

  • Considerando as tabelas como T1 e T2, ficaria algo mais ou menos assim:

    SELECT T1.ERRO, COUNT(T2.*) FROM
    T1 INNER JOIN T2 ON T1.CHAVE = T2.CHAVE
    GROUP BY T1.ERRO.

    Acho que seria mais ou menos isso.
    Não testei.
    Se não der certo, coloque as informações estruturais das duas tabelas e um exemplo de dados que constam nelas para que possamos te ajudar melhor.


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    terça-feira, 19 de novembro de 2013 15:43
  • A tabela com os erros da aplicaçao nao possuem codigos.. é só a descrição do erro..

    a contagem tera que ser feita de alguma forma pela descrição..

    where descricao like %descricaoerronaoutratabela%

    foi essa junção que eu nao soube fazer..

    terça-feira, 19 de novembro de 2013 15:51
  • Como está a descrição na tabela de erros e a descrição na outra tabela?

    Coloque um exemplo.


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    terça-feira, 19 de novembro de 2013 15:54
  • Por exemplo:

    na tabela de erros:

    DescricaoErro

    Ocorreu um erro inesperado no enablement MaintainSubscriptionServices.
    Caso o problema persista, entre em contato com a Central de Serviços

    na tabela de erros dos pedidos

    NumeroPedido    Status   Comentarios

    123455               Erro       11957835736 - Ocorreu um erro inesperado no enablement MaintainSubscriptionServices. Caso o problema persista, entre em contato com a Central de Serviços.

    O que eu preciso é saber quantas vezes o erro da primeira tabela aparece no campo comentarios da segunda. 

    terça-feira, 19 de novembro de 2013 15:58
  • Certo, acho que funcionaria da seguinte forma:

    SELECT T1.ERRO, COUNT(T2.*) FROM
    T1 INNER JOIN T2 ON T2.Comentarios LIKE '%'+LTRIM(RTRIM(T1.DescricaoErro))+'%'
    GROUP BY T1.ERRO.

    Não sei se vai funcionar.

    Faça um teste.


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    • Sugerido como Resposta Thiago Patrocinio terça-feira, 19 de novembro de 2013 16:38
    terça-feira, 19 de novembro de 2013 16:05
  • Olá,

    A resposta do Kanaâm funciona realmente :)

    Mas caso o "Comentários" tenha que ser exatamente igual a "DescricaoErro", sugiro que apenas troque o LIKE por um "=" mesmo :)

    Tipo:

    SELECT TabelaErro.Erro, COUNT(TabelaErro2.Descricao) FROM TabelaErro inner join TabelaErro2 on TabelaErro2.Descricao = LTRIM(RTRIM(TabelaErro.Comentarios))
    GROUP BY TabelaErro.Erro 

    Mesma estrutura só tendo essa alteração.

    Até mais o/

    terça-feira, 19 de novembro de 2013 16:38
  • Adaptei o codigo aqui.. e ficou assim: SELECT T1.Descricao, COUNT(T2.*) FROM TabErros T1 INNER JOIN Erros T2 ON T2.Comentarios LIKE '%'+LTRIM(RTRIM(T1.Descricao))+'%' GROUP BY T1.Descricao porém esta dando um erro... Msg 102, Level 15, State 1, Line 1 Incorrect syntax near '*'. Comentando antes da virgula após o descricao a query retorna.. O que estaria errado?
    terça-feira, 19 de novembro de 2013 17:57
  • Tente assim:

     SELECT T1.Descricao, COUNT(*) as TOTAL FROM TabErros T1 INNER JOIN Erros T2 ON T2.Comentarios LIKE '%'+LTRIM(RTRIM(T1.Descricao))+'%' GROUP BY T1.Descricao


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    terça-feira, 19 de novembro de 2013 18:04
  • Deu certinho.. não sabia que o join funcionaria desse jeito.. achei q tivesse que ter outro select fazendo o count qdo o erro fosse igual a xxx.

    Obrigada.

    terça-feira, 19 de novembro de 2013 18:16
  • Por nada!
    Precisando pode postar que sempre tem alguém disposto a ajudar.

    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    terça-feira, 19 de novembro de 2013 18:22