Usuário com melhor resposta
Contar dados de tabelas diferentes

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?
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
- Marcado como Resposta Fernanda F. Pradella terça-feira, 19 de novembro de 2013 18:16
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
-
-
-
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çosna 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.
-
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
-
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.ErroMesma estrutura só tendo essa alteração.
Até mais o/
-
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?
-
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
- Marcado como Resposta Fernanda F. Pradella terça-feira, 19 de novembro de 2013 18:16
-
-