Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde,A consulta é meio grande e de um sistema aqui da minha empresa. Vou posta ela e depois explico:
select CAMPOLIVRE3, NOMEFANTASIA FANTASIA$, (select top 1 CODIGO from TPRDCODIGO(nolock) where IDPRD = D.IDPRD ORDER BY DTCADASTRO DESC) AS CODBARRAS, SUM((D2.SALDOFISMAX + D2.SALDFISMIN)/2) AS IDEAL, (ROUND((SUM(D1.SALDOFISICO2) - SUM((D2.SALDOFISMAX + D2.SALDFISMIN)/2)),0)*-1) AS FALTA, (ROUND((SUM(D1.SALDOFISICO2) - SUM((D2.SALDOFISMAX + D2.SALDFISMIN)/2)),0)*-1)/D3.FATORCONVERSAO, D.CODUNDCOMPRA, D3.FATORCONVERSAO from TPRD D(nolock) inner join TPRDLOCINFO D2(nolock) on D2.idprd = D.idprd inner join TPRDLOC D1(nolock) on D1.codloc = D2.codloc inner join TUND D3(nolock) on D.CODUNDCOMPRA = D3.CODUND WHERE (D2.IDPRD = D1.IDPRD) AND (D.IDPRD = D1.IDPRD) AND (D.IDPRD = D2.IDPRD) AND (CODIGOPRD LIKE '12%') AND (D1.SALDOFISICO2 < ((D2.SALDOFISMAX + D2.SALDFISMIN)/2)) AND ROUND((D1.SALDOFISICO2 - ((D2.SALDOFISMAX + D2.SALDFISMIN)/2)),0) <> 0 GROUP BY D.IDPRD, D.CAMPOLIVRE3, D.NOMEFANTASIA, D.CODUNDCOMPRA, D3.FATORCONVERSAO ORDER BY FANTASIA$Esta consulta está funcionando perfeitamente... Agora o problema é o seguinte, eu gostaria que quando esta conta:(ROUND((SUM(D1.SALDOFISICO2) - SUM((D2.SALDOFISMAX + D2.SALDFISMIN)/2)),0)*-1)/D3.FATORCONVERSAOfosse maior que 0 ele exibisse no resultado.Coloque ela então na clausula where da seguinte maneira:AND ((ROUND((SUM(D1.SALDOFISICO2) - SUM((D2.SALDOFISMAX + D2.SALDFISMIN)/2)),0)*-1)/D3.FATORCONVERSAO)>0e recebo como resposta:
> An aggregate may not appear in the WHERE clause unless it is in a subquery contained in a HAVING clause or a select list, and the column being aggregated is an outer reference.
Alguma ideia?
Carregando comentários...