Consulta SQL de Vendas mensais, anuais e diárias

Neste vídeo vou mostrar como criar consultas em SQL para obter estatísticas de vendas.

Vamos poder obter vendas anuais, mensais e diárias.

Exemplos:

Vendas Anuais:

select
EXTRACT(MONTH from CUP_VENDA.`DATA`) as Mes,
EXTRACT(YEAR from CUP_VENDA.`DATA`) as Ano,
format(sum(CUP_ITEM.TOTAL),2,‘de_DE’) as TotalVenda
from CUP_VENDA, CUP_ITEM
where CUP_VENDA.ID_VENDA = CUP_ITEM.ID_VENDA
group by Mes, Ano
Order by Ano, Mes

Vendas Todos os Dias do Mes 07 do ano de 2018:

select
EXTRACT(DAY from CUP_VENDA.`DATA`) as Dia,
EXTRACT(MONTH from CUP_VENDA.`DATA`) as Mes,
EXTRACT(YEAR from CUP_VENDA.`DATA`) as Ano,
format(sum(CUP_ITEM.TOTAL),2,‘de_DE’) as TotalVenda
from CUP_VENDA, CUP_ITEM
where CUP_VENDA.ID_VENDA = CUP_ITEM.ID_VENDA
and EXTRACT(MONTH from CUP_VENDA.`DATA`) = 07
and EXTRACT(YEAR from CUP_VENDA.`DATA`) = 2018
group by Dia, Mes, Ano
Order by Ano, Mes, Dia

Assista o vídeo:

#dicassql #sql #comandos #consultasql #query #bancodedados #mysql #oracle #firebird #mysql #mariadb #postgre #postgresql #sqlite #vendas #vendasmensais #vendasanuais

Como usar um subselect com update

Neste video mostro como usar um subselect / subquery junto com o comando upgrade.

Nos exemplos atualizo campos da tabela de produto como valor NCM buscando o valor da tabela de IPBT. Outro Exemplo é de baixar o estoque de produtos usando uma query que retorna os itens do cupom.

Comandos Exemplo 001:

No Exemplo abaixo temos 2 tabelas, uma de produtos e uma IBPT.

Onde atualizamos o campo ValorIbpt do produto com a resposta do subselect da tabela IBPT

    update produto pr
    set pr.VrIPBTProd = (select ib.ValorIBPT
                         from ibptax ib
                         where ib.CodNCM = pr.NcmProd )

Exemplo 002:

Neste Exemplo temos um cupom com “n” itens.

Então fazemos o update para “baixar” o estoque de um determinado cupom.

    update produto
    set produto.EstAtualProd = produto.EstAtualProd –
        (select tmpite.tite_Qtde from tmpite
        where tmpite.tite_idVenda = 11 and tmpite.tite_CodPro = produto.CodProd)
    where produto.CodProd in (select tmpite.tite_CodPro from tmpite
                               where tmpite.tite_idVenda = 11)

#bancodedados #sql #comandosql #subselect #update #subquery #sqlduastabelas

Como usar um subselect em uma consulta SQL

A definição de Subselect ou subquery é uma instrução de consulta dentro de outra consulta SQL.
Aqui então vai dois exemplos simples de como usar subselect.
Exemplo da Query do Vídeo:

select TEMP.Cupom, sum(temp.Venda_bruta) as Total_Cupom
from
(select cb.tcab_IDVenda as Cupom,iv.tite_Tot as
Venda_Bruta from tmpcab cb
join tmpite as iv on cb.tcab_IDVenda = iv.tite_idVenda) as TEMP
Group by TEMP.Cupom


Replicando dados entre Matriz e filiais

Qual desenvolvedor de softwares que nunca pensou em criar um replicador para sincronizar base de dados, tabelas e registros entre empresas ?

Neste vídeo vou mostrar como replicar os dados (base de dados, tabelas e registros) entre matriz e filiais.

FUNCIONA EM QUALQUER LINGUAGEM DE PROGRAMAÇÃO QUE TENHA CONEXÃO MYSQL / MARIADB
NÃO É VPN!
É NATIVO DO MYSQL / Maria DB
NÃO USA COMPONENTES
 

Se puder me ajudar, inscreva-se no meu canal. Isso me ajuda muito !

Aprenda Programar: função para retornar o valor de um campo auto-incremento

Recebi muitos e-mails de amigos inscritos no meu blog e no canal do youtube com perguntas:

Como saber o próximo número do auto-increment?
como recuperar último código de um auto-incremento ?
Como saber o próximo valor do auto incremento?

###### Clique no GOSTEI ! isso me ajuda muito ! #############

Neste vídeo vou mostrar como criar uma função para retornar o valor do campo auto incremento e como definir o valor do próximo incremento.

###### Função  #####

Uses db; // Declare USES DB


//Private ou Public
function RetornaAutoINC(cTabela, cCampoAI: String; vAtribui:variant):Variant;



        //Função:

function RetornaAutoINC(cTabela, cCampoAI: String; vAtribui:variant): Variant;
var
  vResultaAutoIncrimento : Variant; // resultado do incremento
  nQTD : Variant;   // Variável para próximo incremento
begin
  nQTD:=vAtribui; // atribuição a variavel nQTD o valor do próximo incremento obtido pelo parametro da funcao
  TabGlobal.SqlAutoInc.Close; // fecha Query
  TabGlobal.SqlAutoInc.sql.Clear; // limpa Query
  TabGlobal.SqlAutoInc.SQL.Add(‘Select Max(‘+cCampoAI+’) as nCocInc from ‘+cTabela); // escreve nova query com parametros recebido da funcao
  TabGlobal.SqlAutoInc.Open; // abre a nova query
  case TabGlobal.SqlAutoInc.Fields[0].DataType of
    ftSmallint, ftWord, ftInteger: // se o campo AI for SmallInt, Word ou Integer
      vResultaAutoIncrimento := TabGlobal.SqlAutoInc.Fields[0].AsInteger + nQtd;
    ftFloat, ftCurrency: // Se o campo for Float ou Currency
      vResultaAutoIncrimento := TabGlobal.SqlAutoInc.Fields[0].AsFloat + nQtd;
  end;
  TabGlobal.SqlAutoInc.Close; // fecha query
  Result := vResultaAutoIncrimento; // retornar o campo Resultado Auto INc
end;

###### Assista o vídeo #######