MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    Extracto Bancário no MySQL

    Avelino João
    Avelino João
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 316
    Registrado : 10/03/2012

    Extracto Bancário no MySQL  Empty Extracto Bancário no MySQL

    Mensagem  Avelino João 3/5/2018, 16:27

    Boa Tarde, hoje decidi colocar algo interessante para quem precisar..

    Basicamente e um extracto Bancário, direito em SQL sem usar aplicação alguma, dessa forma para muito que pensam trabalhar com banco de dado MySQL fica fácil, um extracto igual ao do mestre Avelino Sampaio.

    Criamos uma Tabela para o Exemplo


    Código:
    create TABLE demo_extracto
    (id int(11) PRIMARY key AUTO_INCREMENT,
    obs varchar(30),
    entra decimal(18,2) not null default 0,
    sai decimal(18,2) not null default 0,
    debito_credito TINYINT not null default 0 COMMENT '1 para debito(Sai) 0 para credito(Entra)');

    Adicionamos alguns dados para testar.
    Código:
    INSERT INTO `demo_extracto` (`obs`, `entra`, `debito_credito`) VALUES ('Entro Dinheiro', '1200', '0');
    INSERT INTO `demo_extracto` (`obs`, `entra`, `debito_credito`) VALUES ('Entro mais Dinheiro', '4500', '0');
    INSERT INTO `demo_extracto` (`obs`, `entra`, `sai`, `debito_credito`) VALUES ('Sai Dinheiro', '0', '2800', '1');
    INSERT INTO `demo_extracto` (`obs`, `entra`, `debito_credito`) VALUES ('Entro mais', '1230', '0');
    INSERT INTO `demo_extracto` (`obs`, `entra`, `sai`, `debito_credito`) VALUES ('Saiu', '0', '150', '1');
    INSERT INTO `demo_extracto` (`obs`, `entra`, `sai`, `debito_credito`) VALUES ('Saiu mais', '0', '1235', '1');

    Criamos uma Função para auxiliar na visualização do formato numérico dentro do SQL (Opcional)

    Código:
    DELIMITER $$
    DROP FUNCTION IF EXISTS f_numero_format$$
    /*A função recebe 2 parâmetros o Valor a ser convertido y a quantidade de casas decimais*/
    CREATE FUNCTION `f_numero_format`(numero decimal(18,2), decimals int(1)) RETURNS varchar(20) CHARSET utf8
    NO SQL
    BEGIN
     declare vs_retorno varchar(20);
     set vs_retorno = REPLACE( REPLACE (REPLACE (FORMAT (numero, decimals), ".", "@"), ",", "."), "@", ",");
     return vs_retorno;
    END$$
    DELIMITER ;


    Por Ultimo o SQL que faz a magica
    Código:
    SELECT id, obs, f_numero_format(entra,2) as credito, f_numero_format(sai,2) as debito,  f_numero_format(saldo, 2) as saldo
    FROM (
        SELECT
            id,
            obs,
            entra,
            sai,
     @debito_credito := debito_credito AS tipo,
            @saldo := IF(@debito_credito = 0, @saldo + entra, @saldo - sai) AS saldo
        FROM demo_extracto, (SELECT @debito_credito := 0, @saldo := 0) as vars
        ORDER BY id
    ) AS extrato

    union all

    SELECT 0, 'Saldo Final', 0, 0,  f_numero_format(@saldo, 2);



    Fazendo um filtro entre datas usando essa consulta SQL..



    Código:
    SELECT id, obs, f_numero_format(entra,2) as credito, f_numero_format(sai,2) as debito,  f_numero_format(saldo, 2) as saldo
    FROM (
        SELECT
            id,
            obs,
            entra,
            sai, @debito_credito := debito_credito AS tipo,
            @saldo := IF(@debito_credito = 0, @saldo + entra, @saldo - sai) AS saldo
        FROM demo_extracto, (SELECT @debito_credito := 0, @saldo := 0) as vars
        WHERE colunaData BETWEEN '01-01-2016' and '31-01-2016' /*Obviamente neste exemplo não tenho data, basta adicionar a coluna e testar*/
        ORDER BY id
    ) AS extrato

    union all

    SELECT 0, 'Saldo Final', 0, 0,  f_numero_format(@saldo, 2);

    Bom brevemente vou dar continuidade ao tópico e explicar como por a funcionar no Ms Access usando o Stored Procedure do Mysql.

    Extracto Bancário no MySQL  Captur10


    .................................................................................
    Proaccess - Angola
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7920
    Registrado : 15/03/2013

    Extracto Bancário no MySQL  Empty Re: Extracto Bancário no MySQL

    Mensagem  Alvaro Teixeira 3/5/2018, 19:50

    Olá João Avelino,

    Parabéns e obrigado pela partilha.
    Ficamos aguardar a continuidade.

    cheers
    marcos_novack
    marcos_novack
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 72
    Registrado : 19/01/2011

    Extracto Bancário no MySQL  Empty Re: Extracto Bancário no MySQL

    Mensagem  marcos_novack 10/4/2019, 00:00

    Maravilha!!!
    Muito bom

    Conteúdo patrocinado


    Extracto Bancário no MySQL  Empty Re: Extracto Bancário no MySQL

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 11/5/2024, 06:21