BY ou o interpretador vai gerar um erro.Clausula HAVINGEsta clausula funciona como um WHERE do GROUP BY. Quando precisamos inserir uma condicao no resultado do agrupamento usamos a clausula HAVING, em geral podem ser usadas as mesmas condicoes do WHERE.Clausula ORDER BYQuando uma consulta e gerada em geral ela fica ordenada pela chave primaria, que por padrao ja e um indice da tabela, em seguida o proximo campo da sequencia e o outro e assim ate o final. Mas em determinadas situacoes precisamos ordenar o retorno da consulta por colunas especificas e ai entra essa clausula. Os campos serao ordenados na ordem que forem listados. Caso desejem uma ordenacao inversa usa-se o DESC apos o nome do campo.ORDER BY Campo1, Campo2, Campo3 DescRetorno das ConsultasExiste um painel de retorno das consultas que e mostrado abaixo das consultas, esse retorno pode ser mostrado em Grid (Ctrl + D), em texto (Ctrl + T) usado nos scripts abaixo e salvo em um arquivo (Ctrl + Shift + F) que cria um arquivo com extensao rpt, mas pode ser aberto em qualquer editor de texto.ExemplosExplicadas as clausulas do SELECT, vamos agora mostrar alguns exemplos de consultas, comecamos das mais simples e vamos dificultando ao longo dos exemplos. 1. Todos os Registros da tabela de categorias;SELECT * FROM TBCATEGORIACD_CATEGORIA DESC_CATEGORIA------------ ------------------------------1 Bebidas2 Cereais3 Lacticinios4 Massas5 Enlatados(5 linha(s) afetadas)2. Os 10 primeiros registros da tabela de produtos;SELECT TOP 10 * FROM TBPRODUTOCD_PRODUTO CD_REFERENCIADESC_PRODUTO CD_CATEGORIA ST_PRODUTO NR_SERIE----------- --------------------------------------------------------------- ------------ -------------------------1 1001 Whisky 08 Anos 1 A NS1100112 1002 Whisky 12 Anos 1 A NS2100213 1003 Vinho 1 A NS3100314 2001 Arroz Branco 2 A NS4200125 2002 Feijao Carioca 2 A NS5200226 3001 Leite Longa Vida 3 A NS6300137 3002 Leite Longa Vida Desnatado 3 A NS7300238 4010 Macarrao Parafuso 4 A NS8401049 4020 Macarrao Talharim 4 A NS94020410 6100 Pessego em Calda 5 A NS1061005(10 linha(s) afetadas)3. Retorna 10% do total de registro da tabela de produtos;SELECT TOP 10 PERCENT * FROM TBPRODUTOCD_PRODUTO CD_REFERENCIADESC_PRODUTO CD_CATEGORIA ST_PRODUTO NR_SERIE----------- --------------------------------------------------------------- ------------ -------------------------1 1001 Whisky 08 Anos 1 A NS1100112 1002 Whisky 12 Anos 1 A NS210021(2 linha(s) afetadas)4. Criacao de um campo na consulta e retornando somente alguns campos da tabela de unidades;SELECT 'TABELA DE UNIDADES' ASTABELA, SGL_UNIDADE, DESC_UNIDADE, QTD_PADRAO FROM TBUNIDADETABELA SGL_UNIDADEDESC_UNIDADE QTD_PADRAO------------------ ----------------------------------------------------------------------------------------------------TABELA DE UNIDADES UN Unidade 1.00TABELA DE UNIDADES GR Grama 1000.00TABELA DE UNIDADES KG Quilo 1.00TABELA DE UNIDADES LT Litro 1.00TABELA DE UNIDADES PCT Pacote 1.00TABELA DE UNIDADES CX12 Caixa 12 Unidades 1.00TABELA DE UNIDADES CX24 Caixa 24 Unidades 1.00(7 linha(s) afetadas)5. Inserindo uma condicao pra retorno;SELECT * FROM TBUNIDADEWHERE QTD_PADRAO = 1CD_UNIDADE SGL_UNIDADEDESC_UNIDADE QTD_PADRAO----------- ----------------------------------------------------------------------------------------------------1 UN Unidade 1.003 KG Quilo 1.004 LT Litro 1.005 PCT Pacote 1.006 CX12 Caixa 12 Unidades 1.007 CX24 Caixa 24 Unidades 1.00(6 linha(s) afetadas)6. Ordenando uma consultaSELECT CD_REFERENCIA, DESC_PRODUTO FROM TBPRODUTOWHERE ST_PRODUTO <> 'A'ORDER BY DESC_PRODUTOCD_REFERENCIA DESC_PRODUTO------------- --------------------------------------------------(0 linha(s) afetadas)7. Agrupando na tabela subcategorias pelo codigo da categoria;SELECT CD_CATEGORIA, COUNT(*) AS QTDFROM TBSUBCATEGORIAGROUP BY CD_CATEGORIACD_CATEGORIA QTD------------ -----------1 62 23 25 26 5(5 linha(s) afetadas)8. Relacionando as tabelas de produto e subcategoriaSELECT P.CD_PRODUTO, P.DESC_PRODUTO, S.CD_SUB, S.DESC_SUBFROM TBPRODUTO AS P INNER JOIN