Ola, boa noite... preciso criar um código que faço o seguinte, veja um exemplo de registros:
TABELA_1
codigo nome qtde valor
1 teste 5 1,00
2 teste 2 1,00
1 teste 5 1,00
3 teste 1 1,00
Preciso copiar esses registros para TABELA_2, porém, não quer repetir codigo, quando houver codigo iguais, somar a QTDE
TABELA_2
codigo nome qtde valor
1 teste 10 1,00
2 teste 2 1,00
3 teste 1 1,00
preciso de algo igual acima... tentei esse codigo, mas não deu certo
INSERT INTO TABELA_2 (CODIGO, NOME, QTDE, VALOR)
SELECT CODIGO, NOME, SUM(QTDE), VALOR
FROM TABELA_1 where id_cidade = :g_id_cidade GROUP BY CODIGO;
Alguma dica?
INSERT INTO com GROUP BY
-
- Rank: Analista Sênior
- Mensagens: 172
- Registrado em: Seg, 24 Out 2016 7:20 pm
-
- Rank: Analista Sênior
- Mensagens: 172
- Registrado em: Seg, 24 Out 2016 7:20 pm
tentei também com o DISTINCT, mas não filtra
INSERT INTO TABELA_2 (CODIGO, NOME, QTDE, VALOR)
SELECT [b]DISTINCT CODIGO[/b], NOME, SUM(QTDE), VALOR
FROM TABELA_1 where id_cidade = :g_id_cidade;
-
- Rank: Analista Sênior
- Mensagens: 172
- Registrado em: Seg, 24 Out 2016 7:20 pm
conforme meu exemplo que passei, não consegui resolver da forma q acreditava ser mais facil... mas ai tem o dizer: "O QUE FAZ SAPO PULAR É APERTO" ne
montei assim:
montei assim:
-- CRIAR UMA NOVA BASE DE ITENS
INSERT INTO LIC_LICITACAO_ITENS (CODIGO_ITEM, CODIGO_LICITACAO, NOME_ITEM, UNIDADE_MEDIDA, QUANTIDADE,
NUMERO_LOTE, VALOR_ESTIMADO, NR_ORDEM, ID_CIDADE, CODIGO_FORNECEDOR, SEM_LANCE)
SELECT CODIGO_ITEM , CODIGO_LICITACAO, DESCRICAO_ITEM, UNIDADE, QUANTIDADE, LOTE, VALOR, NR_ORDEM, ID_CIDADE, :P15_PROPONENTE, 1
FROM LIC_SOLICXLICIT_ITENS where id_cidade = :g_id_cidade and
CODIGO_LICITACAO = :P15_CODIGO;
-- DELETA ITENS DUPLICADOS
delete from LIC_LICITACAO_ITENS where id_cidade = :g_id_cidade and
CODIGO_LICITACAO = :P15_CODIGO and
CODIGO_FORNECEDOR = :P15_PROPONENTE and rowid not in
(select min(rowid ) from LIC_LICITACAO_ITENS where
id_cidade = :g_id_cidade and
CODIGO_LICITACAO = :P15_CODIGO and
CODIGO_FORNECEDOR = :P15_PROPONENTE group by CODIGO_ITEM);
-- ATUALIZA A QUANTIDADE DOS ITENS IMPORTADOS
UPDATE LIC_LICITACAO_ITENS SET QUANTIDADE =
(SELECT sum(QUANTIDADE) FROM LIC_SOLICXLICIT_ITENS WHERE
id_cidade = :g_id_cidade and CODIGO_LICITACAO = :P15_CODIGO and LIC_SOLICXLICIT_ITENS.CODIGO_ITEM = LIC_LICITACAO_ITENS.CODIGO_ITEM)
where id_cidade = :g_id_cidade and CODIGO_LICITACAO = :P15_CODIGO and CODIGO_FORNECEDOR = :P15_PROPONENTE;
Editado pela última vez por DanielNN em Qui, 04 Abr 2019 11:49 am, em um total de 1 vez.
Razão: TAG CODE
Razão: TAG CODE
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes