[firebase-br] having

Anticlei Scheid cleischeid em yahoo.com.br
Sex Set 30 10:07:09 -03 2005


    Funciona de acordo com SQL Ansi-92 pois HAVING em uma cláusula de 
instrução SQL padrão, ou seja, não é proprietária do SQL Server e 
provavelmente deve funcionar exatamente como no SQL Server.
    Por exemplo:

    select i.grupo_id, sum(ip.quantidade * ip.valorunitario) as totalvalor
    from itenspedido ip
    left join itens i on i.item_id = ip.item_id
    where i.precovarejo between 50 and 500
    group by grupo_id
    having sum(ip.quantidade * ip.valorunitario) > 2000

    Ou seja, uma lista de valores totais de pedidos sumarizados (agrupados 
"group by") por grupos (grupo_id) somente dos itens cujos preços de varejo 
(precovarejo) estejam entre 50 e 500 reais, mas somente para os grupos 
(depois da sumarização) que tenham total de valor de pedido maior que 2000 
reais.
    Para sumarizar apenas alguns grupos específicos eu recomendo o uso deste 
filtro na cláusula "where", pois a performance será muito maior do que se 
filtrá-los na cláusula "having", porque a "where" filtra as linhas ANTES de 
sumarizar e na "having" DEPOIS, então você estaria sumarizando dezenas ou 
centenas de linhas sem necessidade. Por exemplo:

    select i.grupo_id, sum(ip.quantidade * ip.valorunitario) as totalvalor
    from itenspedido ip
    left join itens i on i.item_id = ip.item_id
    where i.precovarejo between 50 and 500 and i.grupo_id in 
('ANEIS','GAXETAS','RETENTORES')
    group by grupo_id
    having sum(ip.quantidade * ip.valorunitario) > 2000

    ou seja, neste segundo exemplo somente serão agrupados e listados os 
grupos determinados na cláusula where.

Abraço

----- Original Message ----- 
From: "Gustavo Sequeira" <sequeira2003 em gmail.com>
To: <firebird-br em yahoogrupos.com.br>; "FireBase" <lista em firebase.com.br>
Sent: Friday, September 30, 2005 9:11 AM
Subject: [firebase-br] having


Gostaria de saber que comando(firebird) substituiria a clausula having do
"sql server"...
 ps.: A cláusula "HAVING" pode ser utilizada para especificar quais grupos
deverão ser exibidos.
--
Att.
Gustavo Sequeira
Eng. de Softwares - Igreja Assembléia de Deus de Pernambuco
"Respondeu-lhe Jesus: Eu sou o caminho, e a verdade, e a vida; ninguém vem
ao Pai, senão por mim."
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


-- 
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.11.8/114 - Release Date: 28/9/2005





Mais detalhes sobre a lista de discussão lista