Ir para conteúdo

POWERED BY:

Arquivado

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

Hamachi

Inserindo dados em tabela temporaria

Recommended Posts

Bom dia, sou novo em sql eu to com um problema. Estou tentando inserir dados de uma tabela que existe em uma temporaria, só que na inserção tem algumas condições.

Até a coluna aip_descricao existe na tabela de origem, e as colunas cor, tamanho, colecao, modelo, sexo e linha eu que estou criando e gostaria que os dados dela fossem o da coluna aip_descricao só que na condição do select.

Só que no codigo que fiz da um erro:

Msg 512, Level 16, State 1, Line 15

Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

Teria alguma maneira de corrigir ou de fazer?

 

Obrigado

 

Danilo

 

CREATE TABLE #Atributos (
	sec_codigo smallint,
	esp_codigo smallint,
	prd_codigo smallint,
	ipr_codigo smallint,
	tpa_codigo smallint,
	aip_descricao varchar(8000),
	cor varchar(8000),
	tamanho varchar(8000),
	colecao varchar(8000),
	modelo varchar(8000),
	sexo varchar(8000),
	linha varchar(8000))

INSERT INTO #Atributos (sec_codigo, esp_codigo, prd_codigo, ipr_codigo, tpa_codigo,
aip_descricao, cor, tamanho, colecao, modelo, sexo, linha) 
select sec_codigo, esp_codigo, prd_codigo, ipr_codigo, tpa_codigo, aip_descricao,
(select aip_descricao from tb_atributo_item_produto where tpa_codigo = '1' ),
(select aip_descricao from tb_atributo_item_produto where tpa_codigo = '2' ),
(select aip_descricao from tb_atributo_item_produto where tpa_codigo = '3' ),
(select aip_descricao from tb_atributo_item_produto where tpa_codigo = '4' ),
(select aip_descricao from tb_atributo_item_produto where tpa_codigo = '5' ),
(select aip_descricao from tb_atributo_item_produto where tpa_codigo = '6' )

 from tb_atributo_item_produto

select * from #Atributos
	
Drop Table #Atributos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta mas ainda não estava conseguindo, mas depois de pesquisar bastante descobri que não precisa nem criar uma tabela temporaria era muita mais facil em um select mesmo, segue o codigo da solução:

 

Obrigado ao pessoal do forum.

 

select distinct
  t1.sec_codigo, t1.esp_codigo, t1.prd_codigo,
  c.apr_descricao colecao,
  m.apr_descricao modelo,
  s.apr_descricao sexo,
  l.apr_descricao linha
from
  tb_atributo_item_produto t1
left join
  tb_atributo_item_produto c on c.sec_codigo = t1.sec_codigo
  and c.esp_codigo = t1.esp_codigo and c.prd_codigo = t1.prd_codigo
  and c.tpa_codigo = 3
left join
  tb_atributo_item_produto m on m.sec_codigo = t1.sec_codigo
  and m.esp_codigo = t1.esp_codigo and m.prd_codigo = t1.prd_codigo
  and m.tpa_codigo = 4
left join
  tb_atributo_item_produto s on s.sec_codigo = t1.sec_codigo
  and s.esp_codigo = t1.esp_codigo and s.prd_codigo = t1.prd_codigo
  and s.tpa_codigo = 5
left join
  tb_atributo_item_produto l on l.sec_codigo = t1.sec_codigo
  and l.esp_codigo = t1.esp_codigo and l.prd_codigo = t1.prd_codigo
  and l.tpa_codigo = 6

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.