Array
(
)

Inserir Valore de Inner Join em um campo

Marcos.rio
   - 08 abr 2005

Amigos, estou com a seguinte dificuldade:
Possua a

Tabela A
Codigo Grupo
1 Frutas
2 Legumes

Tabela B
Codigo Relaciona Descricao
1 1 Banana
1 1 Uva
1 2 Beterraba
1 1 Tomate

O que preciso é que exista uma Tabela C da seguinte forma:

TABELA C
Codigo Grupo Descrição
1 Frutas Banana - Uva
2 Legumes Beterraba - Tomate

Terei que criar alguma procedure..alguém poderia ajudar-me, não possuo nenhum conhecimento de procedure....

Fico grato desde já !

Abs,

Marcos

Eduardo.padilha
   - 12 abr 2005

Ola Marcos.

A principio vc precisa saber como criar store_Procedure e cursores.
Procure dentro do Forum q existe exemplos:

O q vc quer a principio nao vejo uma forma de resolver a nao sendo atraves de cursores a baixo estou escrevendo um código q aparentemente resolveria teu problema.

Se nao entender algo fale.

1 - Cria-se a Procedure.
2 - Tera q usar um Cursor para guardar e concatenar resultados.
3 - Executar a Procedure BUSCA_FRUTAS.

CREATE PROCEDURE BUSCA_FRUTAS

As

DECLARE @A VARCHAR (30)
DECLARE @B VARCHAR (30)
DECLARE @AUX VARCHAR (30)
DECLARE @AUXILIAR VARCHAR (30)

DECLARE Pesquisa_Fruta CURSOR FOR
SELECT A.DESCRICAO, B.DESCRICAO FROM ALIMENTO A LEFT OUTER JOIN ALIMENTO_DESCRICAO B ON (A.COD = B.COD_DESCRICAO)

OPEN Pesquisa_Fruta
FETCH NEXT FROM Pesquisa_Fruta
INTO @A, @B

SET @AUX = @A
SET @AUXILIAR = ´´

WHILE @@FETCH_STATUS = 0
BEGIN
IF (@AUX <> @A) BEGIN
PRINT @AUX + @AUXILIAR
SET @AUXILIAR = ´´
SET @AUX = @A
END
SET @AUXILIAR = (@AUXILIAR + ´ ´ + @B)

FETCH NEXT FROM Pesquisa_Fruta
INTO @A, @B
END
PRINT @AUX + @AUXILIAR
CLOSE Pesquisa_Fruta
DEALLOCATE Pesquisa_Fruta
GO

--- Resultado
FRUTAS BANANA UVA
LEGUMES BETERRABA TOMATE

---- Depois de criada, pelo query Analyse .
EXEC BUSCA_FRUTAS

Espero ter ajudado.