Fórum Select na StoredProcedure #3365

06/03/2009

0

Preciso fazer um select para pegar alguns dados de outra tabela, consigo fazer de uma tabela, mas não consigo fazer para duas tabelas.....   O que eu preciso fazer é uma storedprocedure que pegue o IdProPlan, pesquise na tabela ProPlan qual o price, setup,
Régis Mello

Régis Mello

Responder

Posts

06/03/2009

Régis Mello

Continuando, na sei porque gravou sem eu ter terminado, mas voltando, preciso fazer um select na tabela ProPlan, diretamente na procedure, assim, o sistema passa o IdProPlan e eu pesquiso na procedure qual o price, setup, OrderType. Além disso preciso pegar montar um campo Date e acrescentar mais um dia, ou seja, se recibo foi feito em 2009-03-06 , tenho que somar um dia a essa data e colocar a data gravada na tabela para 209-03-07,  e também pegar o datetime direto na procedure, como eu faço isso, segue a procedure que eu tenho   set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[SP_INSERT_ORDER] ( @UserNum BIGINT, @IdD BIGINT, @IdI BIGINT, @IdProPlan BIGINT, @IdNumInvoice BIGINT, @Points BIGINT, @Price money, @Setup money, @DateDuo nchar(20), @Pay nchar(2), @DatePay nchar(20), @Identifier nvarchar(100), @License nvarchar(50), @OrderType nchar(20), @DateUpdate nchar(20), @DateOrder datetime ) AS BEGIN  Aqui consigui fazer uma pesquisa, mas 2 funcionou, como fazer? para pesquisar na tabela ProPlan os dados que eu preciso? IF NOT EXISTS(SELECT 1 FROM CC_RELATIONSHIP WHERE IDNUM = @IDI) BEGIN SELECT 2 AS TIPO, 'REGISTRO NÃO ENCONTRADO NA TABELA CC_RELATIONSHIP.' AS MENSAGEM END ELSE BEGIN SELECT @IdI = IDI FROM CC_RELATIONSHIP WHERE IDNUM = @IDI INSERT INTO cc_Order (UserNum ,IdD ,IdI ,IdProPlan   -  Esse dado vem do formulário ,IdNumInvoice Esse dado é o último valor do  campo retornado + 1, como fazer isso? ,Points - Esse dado preciso pesquisar na tabela ProPlan a partir do IdProPlan ,Price - Esse dado preciso pesquisar na tabela ProPlan a partir do IdProPlan ,Setup - Esse dado preciso pesquisar na tabela ProPlan a partir do IdProPlan ,DateDuo - esse dado é o dia da gravação + 1 dia ,Pay - ,DatePay ,Identifier ,License ,OrderType - Esse dado preciso pesquisar na tabela ProPlan a partir do IdProPlan ,DateUpdate ,DateOrder) - Esse dado é um datetime que tem que estar na procedure VALUES (@UserNum ,@IdD ,@IdI ,@IdProPlan ,@IdNumInvoice ,@Points ,@Price ,@Setup ,@DateDuo ,@Pay ,@DatePay ,@Identifier ,@License ,@OrderType ,@DateUpdate ,@DateOrder) IF (@@ROWCOUNT = 0) BEGIN SELECT 2 AS TIPO, 'REGISTRO NÃO ENCONTRADO.' AS MENSAGEM END ELSE BEGIN SELECT 1 AS TIPO, 'INSERIDO COM SUCESSO.' AS MENSAGEM END END END
Responder

Gostei + 0

06/03/2009

Régis Mello

Continuando, depois de pesquisar os campos preciso somar , todos os valores, dividir por dados de outra tabela e gravar, como faço isso com storedprocedure?
Responder

Gostei + 0

07/03/2009

[devmedia .net]

Opa, blz Régis ? Sinceramente não entendi o que deseja Régis, está faltando você me passar alguma informação..   Bom, eu sempre peço aos usuários que façam um vídeo ou me explique a dúvida com detalhes, pois tem coisas que para você que conhece o sistema ficam claras, mas para mim que não tenho nem noção do sistema que está fazendo ficam complicadas entender me impossibilitando de lhe ajudar...   Não vi nem sua tabela na procedure, nem os campos dela.   Pois, eu não consegui identificar sua dúvida, pois sua procedure pelo o que eu entendi não está completa. Eu preciso ver em que está com dúvidas para que eu posso ajudá-lo. Explique o que precisa , os passos para chegar nisso e me mostre onde está a sua dúvida extamente..   Outra dica , para retornar apenas um campo de select como o Id que precisa, você deve jogar para uma variável   @VARIAVEL VARCHAR(10)   SELECT @VARIAVEL = CAMPO FROM TABELA     Estou lhe enviando abaixo algumas informações do Books Online do Sql sobre adição de data   GETDATE ( ) A função GETDATE retorna a data e a hora atuais do sistema. Podemos, no Query Analyzer , digitar o seguinte comando para obter a data e hora atuais: SELECT GETDATE ( ) DATEPART ( unidade , data ) A função DATEPART retorna a parte especificada de uma data como um inteiro. Observe os exemplos: SELECT DATEPART ( YEAR , '02/01/2004' ) Reposta: 2004 SELECT DATEPART ( MONTH , '02/01/2004' ) Reposta: 2 SELECT DATEPART ( DAY , '02/01/2004' ) Reposta: 1 DATEADD ( unidade , numero_unid,data ) A função DATEADD retorna uma nova data através da soma do número de unidades especificadas pelo valor unidade a uma data. Observe os exemplos: SELECT DATEADD ( DAY ,6, '02/01/2004' ) Reposta: 2004-02-07 SELECT DATEADD ( MONTH ,6, '02/01/2004' ) Reposta: 2004-08-01 SELECT DATEADD ( YEAR ,6, '02/01/2004' ) Reposta: 2010-02-01 DATEDIFF ( unidade , data1,data2 ) A função DATEDIFF calcula a diferença entre as datas data2 e data1 , retornando o resultado como um inteiro, cuja unidade é definida pelo valor unidade . Observe os exemplos: SELECT DATEDIFF ( DAY , '02/01/2004' , '05/25/2004' ) Reposta: 114 (dias) SELECT DATEDIFF ( MONTH , '02/01/2004' , '05/25/2004' ) Reposta: 3(meses) SELECT DATEDIFF ( YEAR , '02/01/2004' , '05/25/2006' ) Reposta: 2(anos) Dessa forma, a expressão SQL que retorna o número de dias vivido por você até hoje é:

SELECT DATEDIFF(DAY, suadata, GETDATE()) onde suadata deve ser substituída pela sua data de nascimento.   Aguardo seu contato, Grande Abraço Carlos Jr
Responder

Gostei + 0

09/03/2009

[devmedia .net]

Oi Régis tudo bem ? Estou aguardando seu retorno para que possamos dar continuidade ao seu chamado, e lhe ajudar na solução da sua dúvida.   Abraços   Carlos Jr
Responder

Gostei + 0

10/03/2009

Régis Mello

como posso receber  uma foto pelo  WS e gravar na tabela? Tipo receber uma foto de um cliente e gravar num diretório do meu servidor e o caminho no Banco de dados, mas isso precisa ser feito no WS     Att Regis 
Responder

Gostei + 0

10/03/2009

Devmedia

Régis,
o assunto do seu ultimo post é diferente do título do chamado, refere-se a dúvida de outro escopo.
Sugerimos que abra outro chamado.
Responder

Gostei + 0

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

Aceitar