Autor Tópico: Campos calculado  (Lida 372 vezes)

aolveira

  • Novato
  • *
  • Mensagens: 13
Campos calculado
« Online: Novembro 04, 2015, 04:08:20 pm »
Boa tarde a todos  !
Pessoal sou iniciante no scriptcase e estou com uma questão para resolver no meu trabalho e gostaria se alguém poder me ajudar eu agradeço bastante.       
Tonho uma tabela movimento onde alem do codigo do produto tem tambem as movimentações de saidas deste produto.
O que eu estou precisando é exemplo da minha tabela:
Codigo      descrição              qtd_mov         dt_mov     
 100           produto 1                30                01/04/2015
 100           produto 1                30                01/04/2015
 050           produto 2                60                01/10/2015
 050           produto 2                60                01/10/2015

Como eu posso armazenar as saídas do mês 01 ao mês 06 em um campo "safra"  e as saidas entre 06 a 12 no campo  "Entre_Safra"
se alguém poder me ajudar eu agradeço.

Adriano Silva

  • Novato
  • *
  • Mensagens: 13
Re:Campos calculado
« Responder #1 Online: Novembro 05, 2015, 03:57:49 pm »
Boa tarde, aolveira.

Não sei exatamente o seu nível de SQL, mas vou te passar uma instrução em PostGreSQL que você pode colocar numa consulta do SC:

select distinct produto.codigo as codigo, produto.descricao as descricao, tab_safra.tot_qtd_mov as safra, tab_entresafra.tot_qtd_mov as entresafra
from produto
inner join (select codigo, sum(qtd_mov) as tot_qtd_mov
            from produto
            where extract(month from dt_mov) between 1 and 6
            group by codigo) tab_safra on tab_safra.codigo = produto.codigo
inner join (select codigo, sum(qtd_mov) as tot_qtd_mov
            from produto
            where extract(month from dt_mov) between 7 and 12
            group by codigo) tab_entresafra on tab_entresafra.codigo = produto.codigo
order by produto.descricao

O que fiz, foi criar dois subselects da tabela produto restringindo a soma das movimentações nos períodos que preciso, e juntá-los com a tabela principal.
Se for outro tipo de Base de Dados, deverá mudar a parte que restringe os meses.
Se estiver muito complexo, avise-me.

Abraço.
Adriano Silva
Programador/Analista de Sistemas/DBA
---------------------------------------------------------
"May the Force be with you.", Master Yoda.

aolveira

  • Novato
  • *
  • Mensagens: 13
Re:Campos calculado
« Responder #2 Online: Novembro 09, 2015, 03:23:01 pm »
Boa tarde Adriano !

Desde já agradeço muito a sua atenção.

Minhas tabelas estão assim, tabela produtos: codprod,descricao
                                             tabela movimento: codprod, dt_mov, qtd_mov
Obs: Safra e Entre_Safra, são dois campos virtuais onde eu armazenaria as quantidades referente ao período citado no início.

Adenilson
s.adenilson@bol.com.br

aolveira

  • Novato
  • *
  • Mensagens: 13
Re:Campos calculado
« Responder #3 Online: Novembro 11, 2015, 03:55:15 pm »
Boa tarde pessoal!
Primeiro, muito obrigado a todos.
Estou encerrando o tópico e meu sql ficou desta forma:

select m.codprod,p.descricao, sum(
                (select sum(qtd_mov) from movimento mo
                where EXTRACT(MONTH FROM mo.dt_mov) between 4 and 11
                and mo.codprod = m.codprod
                and mo.especie = '00000001'
                and mo.dt_mov = m.dt_mov
                ))as safra,
                sum((select sum(qtd_mov) from movimento mo
                where EXTRACT(MONTH FROM mo.dt_mov) between 1 and 3
                and mo.codprod = m.codprod
                and mo.especie = '00000001'
                and mo.dt_mov = m.dt_mov
                ))as entre_safra
 
from movimento m, produtos p
where m.codprod = p.codprod
group by m.codprod,p.descricao;

Kleyber

  • Expert
  • *****
  • Mensagens: 2239
    • Email
Re:Campos calculado
« Responder #4 Online: Novembro 11, 2015, 04:24:41 pm »
Muito bom.
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

Adriano Silva

  • Novato
  • *
  • Mensagens: 13
Re:Campos calculado
« Responder #5 Online: Novembro 13, 2015, 01:00:52 pm »
Boa tarde Adenilson.

Desculpe a demora em responder; essa semana estive "offline".
Bom saber que consigou resolver.
Qualquer coisa, estamos aí.

Abraço.
Adriano Silva
Programador/Analista de Sistemas/DBA
---------------------------------------------------------
"May the Force be with you.", Master Yoda.