segunda-feira, 21 de setembro de 2009

Usando a cláusula having

{Quando usamos a clausula GROUP BY temos por vezes a tendência em usar o HAVING para especificar uma condição simples como especificado abaixo: SELECT

META_GB.COD_PROJINT,

META_GB.COD_METPADRAO,

METAPADRAO.DES_METPADRAO,

METAPADRAO.COD_UNIDMED,

UNIDMED.SIG_UNIDMED

FROM

META_GB,

METAPADRAO,

UNIDMED

WHERE

( META_GB.COD_METPADRAO = METAPADRAO.COD_METPADRAO ) and

(METAPADRAO.COD_UNIDMED = UNIDMED.COD_UNIDMED)

GROUP BY

META_GB.COD_PROJINT,

META_GB.COD_METPADRAO,

METAPADRAO.DES_METPADRAO,

METAPADRAO.COD_UNIDMED,

UNIDMED.SIG_UNIDMED

HAVING ( META_GB.COD_PROJINT = :Param1 )



ao invés de usar a clausula having para condicionar coloque esta condição na clausula WHERE como especificado abaixo



SELECT

META_GB.COD_PROJINT,

META_GB.COD_METPADRAO,

METAPADRAO.DES_METPADRAO,

METAPADRAO.COD_UNIDMED,

UNIDMED.SIG_UNIDMED

FROM

META_GB,

METAPADRAO,

UNIDMED

WHERE

( META_GB.COD_METPADRAO = METAPADRAO.COD_METPADRAO ) and

(METAPADRAO.COD_UNIDMED = UNIDMED.COD_UNIDMED) and

( META_GB.COD_PROJINT = :Param1 )

GROUP BY

META_GB.COD_PROJINT,

META_GB.COD_METPADRAO,

METAPADRAO.DES_METPADRAO,

METAPADRAO.COD_UNIDMED,

UNIDMED.SIG_UNIDMED

obs: caso a condicionante seja de grupo esta tem que ficar obrigatoriamente na clausula HAVING }

Nenhum comentário:

Postar um comentário