Ir para conteúdo

POWERED BY:

Arquivado

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

ferrazonline

[Resolvido] Uso do Count em Query Complexa

Recommended Posts

Pessoal, eu tenho um projeto onde existe relacionamento de uma compra para N status, para fins de histórico de todos os status da compra.

Quando eu uso um filtro para pesquisar compras cujo status atual é 5, por exemplo, uso a seguinte query:

 

SELECT DISTINCT MAX( s.status ) AS maxstatus, c . *

FROM statuscompra s

LEFT JOIN compra c ON ( s.compra = c.codigo )

WHERE (c.datafim <= "2012-06-19")

GROUP BY c.codigo

HAVING MAX( s.status ) = '5'

ORDER BY c.codigo ASC

 

Em momento anterior da execução dessa query, eu preciso saber a quantidade de registros que ela vai me retornar, para fins de paginação (para aplicar a cláusula LIMIT).

 

Gostaria de saber como poderia montar uma query para retornar apenas a quantidade de registros que a query mostrada acima retornará. Já tentei utilizar COUNT(), mas foi sem sucesso, pois ela conflita com GROUP BY.

 

Agradeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A query ficaria assim

 

SELECT c.codigo , MAX( s.status ) AS maxstatus
FROM statuscompra s 
LEFT JOIN compra c ON ( s.compra = c.codigo ) 
WHERE (c.datafim <= "2012-06-19") 
GROUP BY c.codigo 
HAVING MAX( s.status ) = '5' 
ORDER BY c.codigo ASC 

 

Uma query para contar estes registros ...

 

select count(*) as qtd
from
(SELECT c.codigo , MAX( s.status ) AS maxstatus
FROM statuscompra s 
LEFT JOIN compra c ON ( s.compra = c.codigo ) 
WHERE (c.datafim <= "2012-06-19") 
GROUP BY c.codigo 
HAVING MAX( s.status ) = '5') VIRTUAL

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.