Um Campo com Valor Baseado em Select.

13/12/2012

0

Ola Boa tarde!!!

Galera... quero saber se tem como eu criar um campo ou configurar algum campo, para que o resultado que ele receber seja sempre um select em uma outra tabela.

Como por exemplo:

tabela.item.venda.PcoOrigem = tabela.item.estoque.PcoProduto.

Essa operacao tem que ser sempre que for dado um insert na talela, no caso criado um novo registro, nos updates nao se aplica, etc.

Eh isso ae...

obrigado.

abraco.

Alex - Lekao
Alex Lekao

Alex Lekao

Responder

Posts

13/12/2012

Claudia Nogueira

Tem duas tabelas uma chamada VENDA e outra chamada ESTOQUE?
Você quer jogar o valor de PcoProduto da tabela ESTOQUE no PcoOrigem da tabela VENDA quando inserir algum registro na tabela ESTOQUE?
Ou é o contrário?
Responder

13/12/2012

Roniere Almeida

Tem duas tabelas uma chamada VENDA e outra chamada ESTOQUE?
Você quer jogar o valor de PcoProduto da tabela ESTOQUE no PcoOrigem da tabela VENDA quando inserir algum registro na tabela ESTOQUE?
Ou é o contrário?


achei isso confuso Claudiadn, é possivel fazer isso???
Responder

13/12/2012

Claudia Nogueira

Eu não passei a solução ainda, somente perguntei a estrutura. Hehehe. :)

Tem duas tabelas uma chamada VENDA e outra chamada ESTOQUE?
Você quer jogar o valor de PcoProduto da tabela ESTOQUE no PcoOrigem da tabela VENDA quando inserir algum registro na tabela ESTOQUE?
Ou é o contrário?


achei isso confuso Claudiadn, é possivel fazer isso???
Responder

14/12/2012

Alex Lekao

Ola bom dia!!!

Entao eu quero quando inserir um novo registro na tabela de vendas, o campo pcoorigem receber o prcovenda da tabela estoque.

No caso seria o contrario, respondendo a sua pergunta.

Obrigado.

Alex - Lekao
Responder

14/12/2012

Claudia Nogueira

Como você quer fazer isso a nível de banco, creio que o ideal seria criar um trigger para a tabela venda mais ou menos assim:

CREATE TRIGGER VENDA_PRECO
ON [VENDA] 
AFTER INSERT
AS
BEGIN
   Update A 
      set A.pcoorigem = (SELECT e.prcovenda FROM ESTOQUE E WHERE (e.id_produto = a.id_produto))
     From VENDA A
          Inner Join Inserted B ON A.CODIGO_VENDA = B.CODIGO_VENDA
END


Estou sem o SQL Server aqui, pode ter erros de digitação, e também sou ruim com o SQL Server, respondi pensando na lógica da coisa.

Obs.: Como não sei os nomes dos campos de sua tabela, tem que corrigir a sentença com os nomes corretos.
Responder

14/12/2012

Alex Lekao

Oi Claudia, bom dia!!!

Pois eh, eh justamento por causa da trigguer que to precisando desta opção.

Não estou conseguindo criar Trigguer no banco, não sei se o pessoal do ERP bloqueou, nem se tem como fazer isso.

Eu utilizava uma trigguer mas eles apagaram e agora estou ficando sem este dado.

ABraco.

Alex - Lekao
Responder

14/12/2012

Claudia Nogueira

Quando você tenta criar o TRIGGER dá que mensagem?

Oi Claudia, bom dia!!!

Pois eh, eh justamento por causa da trigguer que to precisando desta opção.

Não estou conseguindo criar Trigguer no banco, não sei se o pessoal do ERP bloqueou, nem se tem como fazer isso.

Eu utilizava uma trigguer mas eles apagaram e agora estou ficando sem este dado.

ABraco.

Alex - Lekao
Responder

14/12/2012

Alex Lekao

Nenhuma, simplesmente não cria.
Responder

14/12/2012

Claudia Nogueira

Mais uma dúvida. Deu a entender que o software não é seu e que você precisa fazer isso no BD de um cliente seu, mas sem conhecimento da empresa desenvolvedora do software. Ou você pode alterar o código fonte?

Nenhuma, simplesmente não cria.
Responder

14/12/2012

Alex Lekao

Não, o software realmente não eh meu, temos licença de uso do software, o banco de dados eh nosso, e como a software house não tem esse tipo de controle no sistema deles e os relatórios do ERP sou eu mesmo quem crio utilizando comendos do SQL junto com um Componente que eh usado no ERP e o banco de dados eu posso criar campos para atender algumas necessidades.

Essa alteração eh no banco aqui da empresa que eu trabalho.

Eu não altero o código fonte do ERP e tbm não altero, não sou programador tbm... rsrsr, eles tem conhecimento da operação, so não sei porque eles removeram.

Fiz contato com eles a respeito do motivo da remocao da trigguer e me falaram para criar um job para fazer isso, mas eu acredito que com um job não funcione, pq a finalidade da operação eh para ser coletado em tempo real.

então com isso estou tentando achar alguma forma de fazer o que preciso sem fazer a trigguer, pq não estou conseguindo cria-la novamente.
Responder

14/12/2012

Claudia Nogueira

Entendi. Também acho que com Job não dá, mas não entendo muito sobre o assunto. O ideal seria você pedir pra eles liberarem o Trigger mesmo.
Vamos ver se alguém com mais conhecimento pode te ajudar.
Boa sorte.
Responder

14/12/2012

Alex Lekao

Obrigado.

Acredito que não queiram liberar viu, infelizmente...

Mas de qqr forma vou aguardar o proprietário da software house voltar das férias e vou exclarecer com ele.

o problema eh que isso ta me dando uma dor de cabeça dos infernos... os dados que não são atualizados esta comprometendo muito as analises que temos aqui... mas paciência... vou esperar para ver.

Obrigado mais uma vez.

abraco.

Alex - Lekao
Responder

17/12/2012

Cristiano Santos

LeKao, tudo bem?

Eu entendi sim o motivo deles solicitarem a você que criasse um JOB.
Na realidade, você comentou que de momentos em momentos você terá que executar esta query para trazer suas informações (me corrija se estiver errado). Você pode criar um JOB que execute esta query e faça a gravação do Resultado em um Diretório específico, sendo que o JOB poderá/poderia ser criado e agendado no SQL Agents, para rodar em períodos e horários específicos (a regra é você quem define).
Vou preparar um material para você seguir um "passo a passo" de como fazer este processo, contudo, de nada irá adiantar se você também não tiver acesso para criação de JOBs no SQL Server.

Se quiser, entre em contato comigo.
Responder

18/12/2012

Alex Lekao

Ola Cristino, boa tarde!!!

Entao o job seria especificamente para execução de tempos em tempos, provavelmente algo em torno de 10 minutos.

Acredito que os Jobs eu possa criar(para falar a verdade ainda não tentei, mas já criei outros em outras épocas), a única coisa que estou tentando quebra a cabeça é em como fazer para que ele seja executado apenas para itens que o preco ainda não foi atualizado, neste caso, ainda não consegui pensar em nada... rsrsr

Mas mesmo assim muito obrigado, e faco contato sim... sempre estou por "aqui"... rsrsrs

e o Fórum fica aberto o tempo todo em minha maquina... rsrsr

mais uma vez obrigado.

Abraco.

Alex - Lekao
Responder

08/01/2013

Alex Lekao

Ola Meu povo, boa tarde!!!

Consegui fazer o JOB e colocar para executar de 10 em 10 minutos.

a triguer não podia ser usada, de acordo com o desenvolvedor do ERP ele faz uma serie de consistências e como a triguer estava, ela estava influenciando no processamento e gravação dos dados.

Com isto o job esta atendendo a nossa necessidade e o problema foi sanado.

não era o ideal, mas foi o que deu para fazer e atendeu a necessidade.

Obrigado a todos pela ajuda e empenho.

Abraco.

Alex - Lekao
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar