Ir para conteúdo

POWERED BY:

Arquivado

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

micox

Conversão de SQL

Recommended Posts

Ae pessoal,

 

Eu tenho a seguinte sql que funciona perfeitamente no access:

SELECT [deptos-emp].id, [tipos-deptos].nome, Count(*) AS AtivosFROM atend INNER JOIN ([tipos-deptos] INNER JOIN ([deptos-emp] INNER JOIN [deptos-atend] ON [deptos-emp].id = [deptos-atend].[deptos-emp_id]) ON [tipos-deptos].id = [deptos-emp].[tipos-deptos_id]) ON atend.id = [deptos-atend].atend_idGROUP BY [deptos-emp].id, [tipos-deptos].nome, [deptos-emp].emp_id, atend.disponivelHAVING ((([deptos-emp].emp_id)=1) AND ((atend.disponivel)=1));

Para ela funcionar no MySql troquei os [ e ] por ` . E ficou assim:

SELECT `deptos-emp`.id, `tipos-deptos`.nome, Count( * ) AS AtivosFROM atendINNER JOIN (`tipos-deptos`INNER JOIN (`deptos-emp`INNER JOIN `deptos-atend` ON `deptos-emp`.id = `deptos-atend`.`deptos-emp_id`) ON `tipos-deptos`.id = `deptos-emp`.`tipos-deptos_id`) ON atend.id = `deptos-atend`.atend_idGROUP BY `deptos-emp`.id, `tipos-deptos`.nome, `deptos-emp`.emp_id, atend.disponivelHAVING (((`deptos-emp`.emp_id) = 1) AND ((atend.disponivel) = 1))

Só que dá o erro: Mensagens do MySQL :

 

#1054 - Coluna 'deptos-emp.emp_id' desconhecida em 'having clause'

 

 

Como fazer pra minha sql funcionar no MySql????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae pessoal, já achei minha resposta:

 

SELECT `deptos-emp`.id, `tipos-deptos`.nome, Count(*) AS AtivosFROM atend INNER JOIN (`tipos-deptos` INNER JOIN (`deptos-emp` INNER JOIN `deptos-atend` ON `deptos-emp`.id = `deptos-atend`.`deptos-emp_id` AND `deptos-emp`.emp_id=1 ) ON `tipos-deptos`.id = `deptos-emp`.`tipos-deptos_id`) ON atend.id = `deptos-atend`.atend_id AND atend.disponivel=1GROUP BY `deptos-emp`.id, `tipos-deptos`.nome, `deptos-emp`.emp_id, atend.disponivel;

É que no VB nós podemos colocar qualquer campo que esteja nos INNERJOIN dentro da HAVING que fica no fim. No MySql eu só posso colocar no HAVING, quem estiver no select inicial (`deptos-emp`.id, `tipos-deptos`.nome, Count(*)), daí eu tenho que colocar os requisitos dentro dos INNERJOIN...

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.