Insert com Select e valor fixo.

SQL

Firebird

13/04/2018

Olá, estou começando na programação e necessito fazer um insert em uma tabela.

Necessito incluir produtos na lista de preço na nova lista. Onde o valor 2 é fixo e os demais são select para informar na tabela.
Esse é o meu código.
 

INSERT INTO lista_precos_itens
    (id_lista, id_itens, id_produto)
VALUES (2,
        ('SELECT COALESCE(MAX(lista_precos_itens.id_itens), 0) + 1
            FROM lista_precos_itens'),
        ('SELECT lista_precos_itens.ID_PRODUTO FROM lista_precos_itens WHERE ID_LISTA=200'));


Obrigado
Paulo Wagner

Paulo Wagner

Curtidas 0

Respostas

Willian Silva

Willian Silva

13/04/2018

Bom dia Paulo Wagner, queria te pergunta o que você deseja fazer com esse insert, para que seria esse sql ?
GOSTEI 0
Paulo Wagner

Paulo Wagner

13/04/2018

Bom dia.

Esse insert tem a finalidade de colocar o produto lincado a uma lista de preços. Nessa opção os preços vão ser zeros somente. Ou seja todos os produtos que estão lincados na lista 200 devem ser inseridos na lista de id 2 que vai ser o valor fixo para todos.

ou seja, preciso pegar todos os produtos que estão na lista de id 200 e inserir tbm na de lista 2;

 
SELECT lista_precos_itens.ID_PRODUTO FROM lista_precos_itens WHERE ID_LISTA=200


Esta tabela não tem auto incremento por isso do sql [code=sql SELECT COALESCE(MAX(lista_precos_itens.id_itens), 0) + 1
FROM lista_precos_itens ][/code] para gerar o id.

Não sei se fui claro.
GOSTEI 0
Willian Silva

Willian Silva

13/04/2018

Boa Tarde, Paulo Wagner poderia me informar se esse id já não existe? se existe não seria melhor um update com os select para os outros campos

UPDATE lista_precos_itens
    id_itens = 'SELECT COALESCE(MAX(lista_precos_itens.id_itens), 0) + 1
            FROM lista_precos_itens', 
    id_produto = ('SELECT lista_precos_itens.ID_PRODUTO FROM lista_precos_itens WHERE ID_LISTA=200')  Cuidar se esse aqui não vai da problema caso seja um produto so coloca um limit no final do sql.
WHERE id_lista = 2;
GOSTEI 0
POSTAR