Ir para conteúdo

POWERED BY:

Arquivado

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

Ratu

Agrupar um select

Recommended Posts

CREATE PROCEDURE sp_sel_visitante_video_historico

 

@id_visitante int

 

AS

DECLARE @id_programa int

DECLARE @id_quadro int

 

DECLARE CUR_TMP CURSOR FOR

SELECT a.id_programa, a.id_quadro from app_psc_visitante_video_historico AS a WITH(NOLOCK) WHERE id_visitante = @id_visitante

 

-- Abre o curosr

OPEN CUR_TMP

 

-- Pula para o próximo registro preenchendo as variáveis

FETCH NEXT FROM CUR_TMP INTO @id_programa,@id_quadro

 

-- Loop: enquando não acabar os registros

WHILE @@FETCH_STATUS = 0

BEGIN

 

IF @id_programa = 0

BEGIN

 

SELECT b.pauta AS pauta_programa, a.pauta AS pauta_quadro FROM app_psc_quadros AS a WITH(NOLOCK) INNER JOIN app_psc_programa AS b WITH(NOLOCK) ON a.id_programa = b.id_programa WHERE a.id_quadros = @id_quadro

 

END

 

ELSE

 

BEGIN

 

SELECT b.pauta AS pauta_programa, "TODOS" AS pauta_quadro FROM app_psc_programa AS b WITH(NOLOCK) WHERE id_programa = @id_programa

 

END

 

-- Pula para o próximo registro preenchendo as variáveis

FETCH NEXT FROM CUR_TMP INTO @id_programa,@id_quadro

END

 

-- Fecha o cursor

CLOSE CUR_TMP

 

-- Desaloca a memória do cursor

DEALLOCATE CUR_TMP

 

 

GO

 

 

 

ASSIM pessoal, o resultado no query Analyser eh exatamente oq eu quero! Mas qd vou pegar ele pelo asp, ele soh me retorna o ultimo registro, eu queria todos, oq eu faço????? :wacko:

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao velho, eu nem entendi diretito oq a procedure faz, mas se é só select pq você num faz uma view, ou entao usa uma 'udf' ai é só colocar o return table

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara oq eh este 'udf' tem algum exemplo aí???eu larguei mão de fazer em stored e fiz em asp memo, e funcionou. VALEU birobirosk8!

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma forma q dá pra fazer, seria asssim.. vou explicar como irá funcionar e você tenta fazer o código em t-sql.. mas é fácil...1. cria uma tabela temporária de sessãoCREATE TABLE #TMP_TESTE(campo 1 int, campo2 varchar(10)....)2. faz o seu cursor normalmente.... WHILE @@FETCH_STATUS = 0 ...3. no momento q você dá um SELECT q na verdade é o resultado q você gostaria de exibir no ASP, você faz um INSERT na tabela temporária...INSERT INTO #TMP_TESTE(campo1, campo2...)SELECT valor1, valor2 FROM tb_xxxx INNER JOIN ... e bla bla bla....4. qdo fechar o cursor você dá um SELECT na tabela temporária... e apaga ela pra liberar da memóriaCLOSE CUR_TMPSELECT * FROM #TMP_TESTEoutra coisa, q pode funcionar tb.. teria q testar.. seria habilitar/desabilitar o SET NOCOUNT ON na primeira linha da sua PROC... veja se ai ele vai retornar o valor completo.. mas achoq com tab temporária você não tera problema nenhum, beleza?;)

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.