USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Consulta muito complicada.
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.
   
Tiranossauro
DOIS IRMÃOS
RS - BRASIL
ENUNCIADA !
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
Pontos: 2843
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.
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página