Cid
|
SÃO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 07/02/2009 19:37 hs
Preciso fazer uma consulta que mostre os registros de uma tabela desmembrados. Por exemplo, na tabela tenho 6 registros e na consulta aparecem 9. Na verdade, a consulta precisa percorrer toda a tabela e desmembrar e classificar os registros. Trata-se um programa para controle de compra e venda de ações. E o que complica é que existem 2 tipos de operações: Se você comprar e vender no mesmo dia (DAY-TRADE) ou se vender em outro dia (NORMAL). Até aí tudo bem, desde que eu faça a compra e a venda na mesma quantidade. Porém, se eu compro 1000 ações hoje e vendo apenas 500 hoje, preciso desmembrar as operações em: Compra NORMAL de 500, compra DAY-TRADE de 500 e venda DAY-TRADE de 500. Eu consegui fazer isso alterando os registros da tabela no momento da inclusão. No exemplo das 1000 ações, quando eu registro a venda de 500, o programa altera o 1º registro de compra para 500, cria um novo registro de compra de 500 e um registro de venda de 500. Ou seja, eu faço 2 inclusões e ele cria 3 registros. E vai alterando os registros correspondentes a cada nova inclusão. Funciona perfeitamente, desde que eu não precise excluir ou alterar nenhum registro depois. E isso é impossível. Assim, preciso fazer isso em uma consulta, ficando na tabela apenas os 2 registros originais, compra de 1000 e venda de 500. Exemplo: DADOS NA TABELA:
ORD DATA C/V AÇÃO QUANT. VALOR TOTAL 1 1/2/2008 C PETR4 1.000 10,00 10.000,00 2 1/2/2008 V PETR4 500 12,00 6.000,00 3 1/2/2008 C PETR4 500 9,00 4.500,00 4 1/2/2008 V PETR4 300 11,00 3.300,00 5 2/2/2008 C PETR4 300 8,50 2.550,00 6 2/2/2008 V PETR4 1.000 14,00 14.000,00
DADOS NA CONSULTA:
ORD. DATA C/V AÇÃO QUANT. VALOR TOTAL OPER. REF. 1 1/2/2008 C PETR4 500 10,00 5.000,00 DT 1 2 1/2/2008 C PETR4 500 10,00 5.000,00 N 2 3 1/2/2008 V PETR4 500 12,00 6.000,00 DT 1 4 1/2/2008 C PETR4 300 9,00 2.700,00 DT 3 5 1/2/2008 C PETR4 200 9,00 1.800,00 N 2 6 1/2/2008 V PETR4 300 11,00 3.300,00 DT 3 7 2/2/2008 C PETR4 300 8,50 2.550,00 DT 4 8 2/2/2008 V PETR4 300 14,00 4.200,00 DT 4 9 2/2/2008 V PETR4 700 14,00 9.800,00 N 2
Não sei se fui claro. Essa coisa é meio complicada. Se alguém tiver uma idéia de como eu posso fazer essa consulta, ficarei muito grato. Obrigado a todos.
|
|
|
|
|
Postada em 07/02/2009 23:41 hs
trabalhe com duas tabelas, tipo estoque. numa delas vc terá o tipo de ação e a quantidade. na outra vc terá as movimentações que tem os campos variáveis de quantidade, valor e data da movimentação relação aos dados fixos da outra tabela. na movimentação vc até pode incluir um campo saldo anterior e saldo atual para o caso de ter que refazer a movimentação Tabela 1 Chave Tipo Quantidade Cotação 1 PETR4 10.000 1,00 2 SUVI3 1.000 1,00 Tabela 2 Chave DataHora Ação ChvTab1 Quant Valor SaldoAnt SaldoAtu 01 01/02/08 15:28:05 C 1 15.000 8,50 0 15.000 02 01/02/08 15:28:18 C 2 3.000 1,00 0 3.000 03 02/02/08 10:15:45 V 1 5.000 12,00 0 10.000 04 04/02/08 09:08:48 V 2 2.000 1,20 0 1.000 Se precisar mais um campo vc acrescenta. Porque na verdade o que vc precisa no final do dia é o saldo de ações (quantidade) onde vc precisa ter a cotação atualizada para ter uma idéia de financeiro. Mas o resultado real é a diferença do que você pagou e do que você recebeu. E tendo a base de dados vc consegue percorrer os registros e dar estas respostas. Espero que tenha sido útil.
|
|
|
Cid
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 09/02/2009 10:28 hs
Tiranossauro
Valeu pela dica! Mas, eu realmente preciso do resultado de cada venda separadamente, não só da diferença no final do dia.
As taxas são diferentes e o Imposto de Renda também nas operações NORMAL e DAY-TRADE. Veja este exemplo:
Compra de 1000 ações a R$ 10,00 cada em 20/12
DATA VENDA QUANT. PREÇO TOTAL TAXAS LUCRO BRUTO IR LUCRO LÍQUIDO 20/12 500 12,00 6.000,00 24,95 975,05 195,01 780,04 21/12 500 12,00 6.000,00 34,85 965,15 144,77 820,38
Eu já uso uma tabela de estoque para calcular o custo médio e registrar as ações que eu não vendo no mesmo dia.
No começo eu fiz quatro formulários e quatro tabelas: Compra Normal, Venda Normal, Compra Day-Trade e Venda Day-Trade. Aí eu registrava as operações separadamente, só no final do dia. Mas, dava muito trabalho.
Agora eu consegui fazer tudo isso num único formulário. Vou registrando tudo e o sistema separa. Só falta descobrir como fazer alterações e exclusões.
Eu poderia criar uma tabela com uma espécie de log das operações, como sugeriu um colega em outro fórum, mas imagina o seguinte:
Eu compro 10.000 ações hoje e vendo 1.000 por semana nas próximas 10 semanas. Se eu registro errado a compra, vou ter que alterar os outros 10 registros futuramente, isso se esses registros não gerarem outros registros.
E outra, em uma das corretoras com que trabalho, a taxa de corretagem é variável de acordo com o volume negociado no dia. O sistema faz o rateio dessa taxa proporcionalmente ao valor de cada negócio. Se eu preciso alterar o valor de um registro, tenho que alterar todos os registros daquele dia. Eu faço isso com uma consulta.
Exatamente por ter tantas variáveis é que eu quero tentar fazer o desmembramento e a classificação por consultas.
Só não estou conseguindo descobrir como fazer isso.
|
|
|
LCRamos
|
GOIANIA GO - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 09/02/2009 14:27 hs
Amigo, olhe, estas coisas são complicadas e depende do modo que se trabalha, vou te dar um exemplo. Tenho uma Tabela produtos com o saldo atualizado, e nada mais. O cliente quer emitir um relatório de saldo, com saldo inicial, entradas, saidas e saldo final, por período, mas como se tenho o saldo atual, nada mais. Bem, ficou facil, tenho uma tabela de itens de vendas, e uma das vendas, coloquei data da movimentação em itens de vendas, e em itens de entradas também coloquei a data, e criei uma tabela de movimentação, aquela que o cliente vai lá no estoque e acerta o estoque, também com data, Para emitir o relatório por periodo, eu simplesmente, pego o saldo atual, e vou fazendo os calculos das movimentações ao contrário, se for saida, eu somo, se for entrada, faço a subtração, pronto tenho o saldo do dia inicial e dia final. Complicado, não acho, mas funcional, se houver algum problema com BD na tabela, e bagunçar o saldo, basta na compactação do BD, eu varer os arquivos e acertar o saldo. No seu caso TALVEZ voce terá que ter mais uma tabela, com estas variações, não sei exatamente o que precisa, mas eu não teria. Bem eu faço assim, agora o resto com voce, mas veja, aceito sugestão de forma mais simples, servirá para mim com certeza. vlu//
|
|
|
Cid
|
SÃO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 16/02/2009 20:11 hs
Ainda não consegui encontrar uma solução. Já pesquisei em vários fóruns e nada. Acho que a solução pro meu caso seria uma consulta mesmo. Algo tipo uma QueryDef temporária. Estou pesquisando o assunto. Se alguém tiver mais alguma dica, agradeço muito.
|
|
|
|