· 6 years ago · Jul 17, 2019, 09:34 PM
1CREATE TABLE IF NOT EXISTS operacao (
2 id INTEGER PRIMARY KEY AUTOINCREMENT,
3 cod_acao TEXT NOT NULL,
4 qtd INTEGER NOT NULL,
5 preco INTEGER NOT NULL,
6 taxas INTEGER,
7 data TEXT NOT NULL,
8 tipo_ordem BIT NOT NULL --1 COMPRA - 0 VENDA
9)
10
11INSERT INTO operacao ( cod_acao, qtd, preco, taxas, data, tipo_ordem) values
12('CSNA3', 100, 1645, 0, '2019-06-30', '1'),
13('CSNA3', 100, 1630, 0, '2019-07-01', '1'),
14('CSNA3', 100, 1650, 0, '2019-07-02', '0'),
15('ITUB4', 100, 3650, 0, '2019-07-04', '1'),
16('ITUB4', 100, 3660, 0, '2019-07-10', '0'),
17('VVAR3', 100, 600, 0, '2019-07-04', '1'),
18('VVAR3', 100, 650, 0, '2019-07-11', '0'),
19('CIEL3', 200, 660, 0, '2019-07-15', '1'),
20('CIEL3', 100, 705, 0, '2019-07-20', '0'),
21('GGBR4', 200, 1510, 0, '2019-07-15', '1'),
22('GGBR4', 100, 1525, 0, '2019-07-18', '1'),
23('GGBR4', 100, 1550, 0, '2019-07-20', '0'),
24('ABEV3', 100, 1850, 0, '2019-07-25', '1'),
25('ABEV3', 100, 1866, 0, '2019-07-26', '1'),
26('ABEV3', 100, 1780, 0, '2019-07-28', '0'),
27('GRND3', 100, 750, 0, '2019-07-18', '1'),
28('GRND3', 100, 730, 0, '2019-07-18', '1'),
29('GRND3', 100, 766, 0, '2019-07-28', '0')
30
31--test data format
32select id, cod_acao, strftime('%d/%m/%Y', data, 'localtime') as 'data op' from operacao order by data asc
33
34--selecione todas operaçoes do mes atual "do ano"
35select * from operacao where strftime('%Y%m', 'now', 'localtime') = strftime('%Y%m', data)
36
37--selecione todas acoes do mes passado
38select * from operacao where strftime('%Y%m', 'now', 'localtime', '-1 month') = strftime('%Y%m', data)
39
40--Total R$ em ativos em carteira
41select sum(preco) as 'Ativos' from operacao where tipo_ordem = 1
42
43--preço medio de cada ativo comprado
44
45--lucro do mes em R$
46select from operacao where strftime('%Y%m', 'now', 'localtime') = strftime('%Y%m', data)
47
48--lucro total do mes em %
49
50--lucro de cada acao vendida no mes
51
52--total vendido deste mes ate agora
53
54--total vendido de X data ate Y data
55
56--total comprado de X data até Y data
57
58select strftime('%d-%m-%Y', 'now', 'localtime');
59
60SELECT DATE('now', 'start of month');
61
62SELECT date('now','localtime', 'start of month');
63
64select date('now')
65SELECT date('now','-1 day');
66
67DELETE FROM operacao
68SELECT * FROM operacao
69
70
71/*
72Nunca usar pontos flutuantes para valores monetários (real, double, float).
73A representação desses valores segue o padrão IEEE_754 e foram projetados exclusivamente para aplicações científicas.
74Aplicações financeiras exigem precisão absoluta pois em um sistema de contabilidade, por exemplo, não pode ser tolerado nenhuma diferença num saldo, mesmo que seja de poucos centavos em Bilhões de Reais, pois causa desconfiança que causaria no sistema (dando a impressão de existencia de erro).
75*/