Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rodrigoalves96

p/ criar um procedure

Recommended Posts

Pessoal, eu estou tentando fazer um procecure que traga duas tabelas, sendo que a segunda, traga apenas os id's da primeira(1:n).

O meu objetivo é depois criar um databind com dois dataset's com esse resultado.

 

meu exemplo

 

Declare @cdem AS Numeric(20,0)

Declare @locCD AS Numeric(20,0)

Declare @cliCD AS Numeric(20,0)

Declare @idCDVENAtt AS Numeric(20,0)

Declare @sql AS varchar(max)

 

SET @cdem = 1

SET @locCD = 159055

SET @cliCD = 3

 

---Etapas do pedido

SELECT

v.id AS id,

v.locCD AS locCD,

v.cliCD AS cliCD,

v.cdps AS cdps,

v.idCDVENPraAtt AS idCDVENPraAtt,

praRef.sDescricao AS sDescricaoLocalRef,

v.sComoSoubeSTBOutros AS sComoSoubeSTBOutros,

v.fAreaInteresse AS fAreaInteresse,

v.sDirecionaPara AS sDirecionaPara,

v.fStatus AS fStatus,

v.fAgendou AS fAgendou,

v.dtCad AS dtCad,

cl.dsnmrs As sNomeCliente,

cl.cdSIT AS sStatusCadastro

FROM cdVENAtt v

LEFT OUTER JOIN portal.dbo.cdps cl

ON cl.cdps = v.CliCD

LEFT OUTER JOIN cdVENPratt praRef

ON praRef.id = v.id

WHERE cl.cdem = @CDEM

AND v.locCD = @locCD

AND v.CliCD = @cliCD

 

--Detalhes da etapa

SELECT

Atti.id AS id,

Atti.idCDVENAtt AS idCDVENAtt,

Atti.cdps AS cdps,

Atti.dtInicioAtendimento AS dtInicioAtendimento,

Atti.dtFinalAtendimento AS dtFinalAtendimento,

Atti.fTipodeAtendimento AS fTipodeAtendimento,

Atti.sComentarioAtendimento AS sComentarioAtendimento,

Atti.sProximoPassoDesc AS sProximoPassoDesc,

Atti.dtProximoPassoData AS dtProximoPassoData,

Atti.dtProximoPassoHora AS dtProximoPassoHora,

Atti.cdpsProximoPassoPara AS cdpsProximoPassoPara,

Atti.fDescartarAtendimento AS fDescartarAtendimento,

Atti.sDescartarAtendimentoMotivo AS sDescartarAtendimentoMotivo,

Atti.sVendaNumero AS sVendaNumero,

cl.dsnmrs As sNomeCliente,

cl.cdSIT AS sStatusCadastro ,

o.dsnmrs As sNomeOrientador

FROM cdVENIAtt Atti

LEFT OUTER JOIN cdVENAtt a

ON a.id = Atti.idCDVENAtt

LEFT OUTER JOIN portal.dbo.cdps cl

ON cl.cdps = a.CliCD

LEFT OUTER JOIN portal.dbo.cdps o

ON o.cdps = Atti.cdps

WHERE(cl.cdem = @cdem)

AND Atti.idCDVENAtt = @idCDVENAtt

 

Os dados da primeira vão vir e da segunda teria que vir se houve resultado e é claro.

 

Alguém entendeu o que eu quis dizer?

 

Podem me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não entendi direito, mas isso tem cara que precisa de cursor.

 

Nesse caso funcionaria assim:

Os id´s são armazenados no cursor que a cada iteração do loop passa para o próximo valor.

Com isso voce consegue passar por todos os id´s retornados da primeira consulta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.