Ir para conteúdo

POWERED BY:

Arquivado

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

André Souza

com Select

Recommended Posts

Olá Pessoal!!!

 

Tudo bem? Sou iniciante em Banco de Dados e preciso da ajuda vocês !

 

O meu problema é o seguinte:

 

Tenho um conjunto de dados de duas tabelas que tenho que selecionar e jogar tudo para uma tabala temporária.

 

Só que este bendito código está me retornando erro! Vê se você pode me ajudar!

 

CREATE PROCEDURE dbo.SEGA7014_SPI

 

@erro_arquivo_id INT,

@layout_id INT,

@versao INT,

@seq_linha INT,

@dt_processamento SMALLDATETIME,

@complemento CHAR,

@cod_ocorrencia CHAR,

@retorno_bb CHAR,

@canal_id INT,

--VARIÁVEIS DE INCLUSÃO

@SEGA7014_processa_id INT,

@num_versao INT,

@cod_erro CHAR,

@nome_arquivo VARCHAR,

@dt_inclusao SMALLDATETIME,

@dt_alteracao SMALLDATETIME,

@usuario VARCHAR,

@lock TIMESTAMP

 

AS

 

SET NOCOUNT ON

 

SELECT

ocorrencia_arquivo_tb.erro_arquivo_id, => uma tabela

ocorrencia_arquivo_tb.layout_id, => uma tabela

ocorrencia_arquivo_tb.versao, => uma tabela

ocorrencia_arquivo_tb.seq_linha, => uma tabela

ocorrencia_arquivo_tb.dt_processamento, => uma tabela

iocorrencia_arquivo_tb.complemento, => uma tabela

ocorrencia_arquivo_tb.cod_ocorrencia, => uma tabela

layout_tb..canal_id => outra tabela => O ERRO TPA AKI!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

INTO #SEGA7014_TEMP_TB

FROM interface_dados_db..ocorrencia_arquivo_tb ocorrencia_arquivo_tb

INNER JOIN interface_db..layout_tb

ON interface_db..layout_tb.layout_id = ocorrencia_arquivo_tb.layout_id

WHERE retorno_BB = 'N'

AND erro_arquivo_id = (SELECT MIN(ocorrencia_arquivo_tb.erro_arquivo_id)

FROM interface_dados_db..ocorrencia_arquivo_tb

WHERE interface_dados_db..ocorrencia_arquivo_tb.layout_id = ocorrencia_arquivo_tb.layout_id

AND interface_dados_db..ocorrencia_arquivo_tb.versao = ocorrencia_arquivo_tb.versao)

 

 

--ERRO NO SELECT!!!

--Um agregado não pode parecer no cláusula WHERE a menos que estiver em um subquery

--contido em HAVING a cláusula ou uma lista seleta, e a coluna que está sendo agregada

--for uma referência exterior.

 

--BEGIN

INSERT INTO interface_dados_db..sega7014_processar_tb(

sega7014_processar_id,

layout_id,

num_versao, --???

cod_erro, --???

canal_id,

dt_inclusao,

dt_alteracao,

usuario,

lock)

 

SELECT

@erro_arquivo_id = sega7014_processar_id,

@layout_id = layout_id,

@versao = num_versao,

@seq_linha, --???

@dt_processamento, --???

@complemento, --???

@cod_ocorrencia, --???

@canal_id = canal_id

FROM interface_dados_db..ocorrencia_arquivo_tb ocorrencia_arquivo_tb

INNER JOIN interface_db..layout_tb

ON interface_db..layout_tb.layout_id = ocorrencia_arquivo_tb.layout_id

 

--END

 

-- BEGIN

-- UPDATE ocorrencia_arquivo_tb

-- set

-- ocorrencia_arquivo_tb..erro_arquivo_id = @erro_arquivo_id,

-- ocorrencia_arquivo_tb.versao = @versao,

-- ocorrencia_arquivo_tb.seq_linha = @seq_linha,

-- ocorrencia_arquivo_tb.dt_processamento = @dt_processamento,

-- ocorrencia_arquivo_tb.complemento = @complemento,

-- ocorrencia_arquivo_tb.cod_ocorrencia = @cod_ocorrencia

-- Where

-- ocorrencia_arquivo_tb.layout_id = @layout_id

--

-- END

 

print 'Inseriu na tabela física'

 

SET NOCOUNT OFF

 

 

COMO POSSO RESOLVER ISSO???? SE PUDER ME AJUDAR!!!

 

 

 

André Ferreira

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se entendi direito ...mas se eu entendi certo, por que você não faz um inner join?ele junta os dados de duas tabelas.select TABELA1.CAMPO1 from TABELA1 inner join TABELA2 on TABELA2.CAMPO2 = TABELA1.CAMPO1é mais ou menos assim, rssssse não for nada disso que você quer, sorry, também sou meio novo na área, rs

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.