Curso Firebird 26 – AVG

A função AVG retorna o cálculo médio de valores.

Exemplo:

select i.IPED_PRODUTO as Codigo, p.PRO_NOME as Descricao,
sum(i.IPED_QTDE) as Quantidade,avg( i.IPED_UNITARIO) as Un_Medio,
( sum(i.IPED_QTDE) * avg(i.IPED_UNITARIO)) as Total
from Produto P, ITEMPEDIDO I
where p.PRO_CODIGO = i.IPED_PRODUTO
group by i.IPED_PRODUTO, p.PRO_NOME

Curso Firebird SQL 25 – Sum e Group By

Vou mostrar como somar registros  como produtos vendidos, agrupando campos com a cláusula GROUP BY.

select i.IPED_PRODUTO as Codigo, p.PRO_NOME as Descricao,
sum(i.IPED_QTDE) as Quantidade, i.IPED_UNITARIO as Unitario,
sum(i.IPED_QTDE * i.IPED_UNITARIO) as Total
from Produto P, ITEMPEDIDO I
where p.PRO_CODIGO = i.IPED_PRODUTO
group by i.IPED_PRODUTO, p.PRO_NOME, i.IPED_UNITARIO


Curso Firebird SQL 24 – Extract

► Ajude a manter este canal no ar, clique em GOSTEI !◄

Neste vídeo
vou mostrar como selecionar registros extraindo dias, meses ou anos.
exemplo todos clientes nascidos em agosto .. ou todos nascidos em
determinado dia e mês…

— nascidos no mês 08 de qualquer ano ou dia
select *
from cliente
where EXTRACT (Month FROM CLI_DTNAS) = 8;

— nascidos entre o mes 4 e 8
select *
from cliente
where EXTRACT (Month FROM CLI_DTNAS) between 4 and 8;

— nascidos no dia 03 do mês 08 de qualquer ano
select *
from cliente
where EXTRACT (Month FROM CLI_DTNAS) = 8
  and EXTRACT (DAY FROM CLI_DTNAS) = 3;

–Exibir nome do cliente e realizar calculo de idade
select CLI_NOME as NOME,
(EXTRACT (Year FROM CURRENT_DATE) – EXTRACT (Year FROM CLI_dtnas)) as Idade
from CLIENTE

Curso Firebird SQL 23 – Union

O operador UNION é usado para combinar o conjunto de resultados de duas ou mais instruções SELECT.

Observe
que cada instrução SELECT no UNION deve ter o mesmo número de colunas.
As colunas também devem ter tipos de dados semelhantes. Além disso, as
colunas em cada instrução SELECT devem estar na mesma ordem.
Script exemplo:

SELECT codigo, tipo, nome 

from (select
        F.FOR_CODIGO AS codigo,     

        ‘Fornecedor’ as Tipo, 

        f.FOR_NOME   as Nome

      from FORNECEDOR F

    

 UNION ALL

      select
         c.CLI_CODIGO as codigo, 

         ‘Cliente’    as Tipo,
         c.CLI_NOME as Nome

      from CLIENTE C)

  

 Order BY NOME

 


Curso Firebird SQL 18 – Exception

Tratando exceções com mensagens de retorno.

Script exemplo:

–Criando Exception
CREATE EXCEPTION EXC_CLIPADRAO
‘Cliente 1 padrão consumidor, exclusão não permitida’;

–Criando Gatilho para disparar exception
SET TERM ^ ;
CREATE TRIGGER CLIENTE_BD FOR CLIENTE ACTIVE
BEFORE DELETE POSITION 0
AS
BEGIN
    /* enter trigger code here */
   if (old.Cli_CODIGO = 1) then
    exception EXC_CLIPADRAO;   
END^
SET TERM ; ^

Curso Firebird SQL 17 – Generator e Trigger

Criando campo auto incrimento usando trigger e generator.

Script Exemplo:

–Criar Generator:
CREATE GENERATOR INC_PRODUTO;
SET GENERATOR INC_PRODUTO TO 1;

–Criar Gatilho(trigger)
 SET TERM ^ ;
CREATE TRIGGER PRODUTO_BI FOR PRODUTO ACTIVE
BEFORE INSERT POSITION 0
AS
BEGIN
    /* enter trigger code here */
    new.PRO_CODIGO = GEN_ID(INC_PRODUTO,1);
END^
SET TERM ;
^