Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Souza_86017

Inner Join

Recommended Posts

Estou precisando de ajuda em uma consulta, ja tentei de tudo quanto é jeito e não vai.

Eu tenho um banco de dados de uma pesquisa realizada sobre qualidade do atendimento em agências.

Tenho uma tabela com as pesquisas concluídas com as respostas e outra com os dados dos pesquisados. Na tabela com os dados dos pesquisados eu tenho uma coluna com o tipo de pessoa(física/jurírica) e a agência que ele foi atendido e na tabela com os resultados da pesquisa eu tenho o código de quem realizou a pesquisa. Eu preciso gerar uma tabela que fique da seguinte forma:

 

codigo qtdPesquisas pessoa_fisica pessoa_juridica

 

39 10 5 5

10 3 2 1

59 50 40 10

 

Código seria o código do entrevistador. Eu consegui fazer até a parte de mostrar o código do pesquisador e a quantidade de pesquisas realizadas:

 

SELECT DISTINCT 316234X10X39 AS codigo, COUNT( 316234X10X39 ) AS qtdPesquisas FROM  `lime_survey_316234` WHERE submitdate !=  'NULL' GROUP BY codigo ORDER BY codigo +0 ASC

mas só que pra saber a quantidade de pesquisas de pessoa física e jurídica eu tenho que relacionar com a tabela dos dados do pesquisado.

 

Alguém me de uma luz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi, acho que uma right join resolveria

 

entendi que existem duas tabelas pessoa(física e /ou jurídica) que é os pesquisado e os dados das pesquisas, e vc quer "juntar" os dados, é isso?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu consegui mostrar os id's dos pesquisadores e quantas pesquisas cada um fez no pessoa jurídica:

SELECT DISTINCT r.316234X10X39 AS cod_pesquisador, COUNT(p.`attribute_6`) AS qtd_comer FROM `lime_survey_316234` AS r
INNER JOIN
`lime_tokens_316234` AS p ON
r.token = p.token
WHERE p.`attribute_6` = 'COMERCIAL' AND p.`completed` != 'N'
GROUP BY cod_pesquisador ORDER BY cod_pesquisador +0 ASC

se eu conseguir criar mais uma coluna mostrando quanto cada um fez no pessoa física já da certo pq o total eu somo no laço do php mesmo, mas tentei algumas vezes olhando esse seu link como referência mas não consegui fazer os 2 selects, tem como dar uma ajuda ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei retornar o tanto de pesquisas feitas por dia por tipo de pessoa e parei no mesmo problema...

Pesquisando na internet tentei fazer usando SUM mas me retornar a soma de todos os campos e não separados...

 

 

SELECT SUBSTRING(`completed`, 1,11) AS data,

SUM(CASE  
    WHEN `attribute_6` = 'COMERCIAL' THEN 1  
    ELSE 0  
    END) AS qtdNoDiaComer,  
SUM(CASE  
    WHEN `attribute_6` = 'SOCIAL' THEN 0  
    ELSE 1  
    END) AS qtdNoDiaSocial
FROM `lime_tokens_316234`
WHERE `completed` != 'N'
GROUP BY data
ORDER BY data ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites
SELECT COUNT(DISTINCT (attribute_3)) AS total_agencias,
(SELECT COUNT(DISTINCT(attribute_3))FROM  `lime_tokens_316234` WHERE completed !=  'N' AND attribute_6 = 'COMERCIAL' ) AS completed_comercial,
(SELECT COUNT(DISTINCT(attribute_3))FROM  `lime_tokens_316234` WHERE completed !=  'N' AND attribute_6 = 'SOCIAL') AS completed_social
FROM `lime_tokens_316234`

Esse é o comando que funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.