Ir para conteúdo
Fórum Script Brasil
  • 0

Select Com Variavel


Harold

Pergunta

Tenho os seguintes dados:

Tabela1

data descri valor

01/01/07 descrição1 100.00

03/01/07 descrição2 50.00

05/01/07 descrição3 30.00

Tabela2

data descri valor

02/02/07 descrição1 100.02

04/02/07 descrição2 100.02

06/02/07 descrição3 100.02

Pergunta: Como faço um Select ou Stored Procedure que me retorne o saldo no seguinte extrato:

data descri valor saldo

01/01/07 descrição1 100.00 100.00

02/02/07 descrição1 100.02 200.02

03/01/07 descrição2 50.00 250.02

04/02/07 descrição2 100.02 350.04

05/01/07 descrição3 30.00 380.04

06/02/07 descrição3 100.02 480.06

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Isso ai é um inner join. De uma olhada em http://scriptbrasil.com.br/forum/index.php?showtopic=108732 que voce conseguirá entender

opa andreia, nesse caso acho q não é JOIN não, nesse caso tem q ser UNION. tipo:

Select * From Tabela1 UNION ALL Select * From Tabela2

só não ta me vindo na cabeca agora algum metodo pra somar acumuladamente como no exemplo q ele passou. assim q eu descobrir edito aqui.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Pericles Sevegnani

ola Harold,

eu resolveria seu problema com uma Stored Procedure, que juntasse o resultado das 2 tabelas em uma 3a. tabela (temporaria).

Voce faz isto, criando uma tabela com a mesma estrutura (Codigo, Descricao, Valor e Saldo).

Depois, executa um Insert p/ as 2 tabelas, jogando tudo nesta 3a tabela.

Ai, voce roda um cursor em cima dos registros da 3a. tabela, e a cada linha, salva o valor anterior, e soma com o valor atual, e executa um Update na linha atual p/ atualizar o saldo da linha.

Alguns problemas que voce talvez encontre:

- ordenacao dos registros: de alguma maneira, garanta que voce sempre consiga o resultado na mesma ordem (pela data ou codigo do registro etc.);

- como fazer um cursor: consulta o Books Online ou Google;

- como atualizar a linha atual do cursor: procure ref. sobre o comando WHERE CURRENT OF;

Outra solucao, é fazer o UNION destas tabelas, e na aplicacao front-end fazer o calculo da coluna do saldo.

abracos,

Péricles Sevegnani

http://blogsqlserver.blogspot.com/

Link para o comentário
Compartilhar em outros sites

  • 0
Isso ai é um inner join. De uma olhada em http://scriptbrasil.com.br/forum/index.php?showtopic=108732 que voce conseguirá entender

opa andreia, nesse caso acho q não é JOIN não, nesse caso tem q ser UNION. tipo:

Select * From Tabela1 UNION ALL Select * From Tabela2

só não ta me vindo na cabeca agora algum metodo pra somar acumuladamente como no exemplo q ele passou. assim q eu descobrir edito aqui.

Usar o union all me parece a melhor saída mesmo, só o que me falta é a forma de montar saldo sem criar uma outra tabela, mesmo que temporaria.

Estou tentando montar algo assim, não sei como funciona, depois que descobrir como e se funciona coloco o "union all" com a tabela2. Até agora não deu muito certo

Declare @Saldo

Set @Saldo = 0

Begin

select

t1.data,

t1.descri

t1.valor,

"Saldo"=

@Saldo = @Saldo + (t1)

from tabela1 t1

End

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

Crie o union dentro de um outro select no from... e faça as suas contas no externo

Select <campos desejados incluindo suas contas > from (

Select * From Tabela1 UNION ALL Select * From Tabela2 )

E apartir daki você usa o Where ou o Groupe By..

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...