Ir para conteúdo
  • 0
Priscila1307

PRODUTOS com a maior quantidade de PEDIDOS

Pergunta

CREATE TABLE CLIENTE( 
 Idcliente int, 
 nome varchar(60), 
 dtnascimento date, 
 cpf varchar(11), 
 CONSTRAINT pk_cliente PRIMARY KEY (Idcliente) 
);

CREATE TABLE PEDIDO( 
 Idpedido int, 
 Idcliente int, 
 datapedido date,  
 vltotal decimal(10,2), 
 CONSTRAINT pk_pedido PRIMARY KEY (Idpedido), 
 CONSTRAINT fk_pedido_cliente FOREIGN KEY (Idcliente) REFERENCES CLIENTE(Idcliente) 
);

CREATE TABLE PRODUTO( 
 Idproduto int, 
 descricao varchar(100), 
 quantidade int, 
 CONSTRAINT pk_produto PRIMARY KEY (Idproduto) 
);

CREATE TABLE ITEMPEDIDO( 
 Idpedido int, 
 Nritem int, 
 valor decimal(10,2), 
 quantidade int, 
 Idproduto int, 
 CONSTRAINT pk_itempedido PRIMARY KEY (Idpedido, Nritem), 
 CONSTRAINT fk_Idpedido FOREIGN KEY (Idpedido) REFERENCES PEDIDO (Idpedido), 
 CONSTRAINT fk_itempedido_produto FOREIGN KEY (Idproduto) REFERENCES PRODUTO (Idproduto) 
);

CREATE TABLE LOG( 
 Idlog int, 
 data date, 
 descricao varchar(255), 
 CONSTRAINT pk_log PRIMARY KEY (Idlog) 
);

INSERT INTO CLIENTE VALUES (1, 'Hugo Batista', TO_DATE('05/02/1990', 'DD/MM/YYYY'), 
'51898608253');

INSERT INTO CLIENTE VALUES (2, 'José Antonio', TO_DATE('02/05/1985', 'DD/MM/YYYY'), 
'51144722241');

INSERT INTO CLIENTE VALUES (3, 'João Carlos', TO_DATE('03/05/1993', 'DD/MM/YYYY'), 
'84882273292');

INSERT INTO CLIENTE VALUES (4, 'Edivaldo Santana', TO_DATE('01/06/2000', 'DD/MM/YYYY'), 
'30609426176');

INSERT INTO CLIENTE VALUES (5, 'Cristina Oliveira', TO_DATE('16/08/1999', 'DD/MM/YYYY'), 
'56313586700');

INSERT INTO CLIENTE VALUES (6, 'Artur da Silva', TO_DATE('06/05/2001', 'DD/MM/YYYY'), 
'67491246583');

INSERT INTO CLIENTE VALUES (7, 'Adrina Domingues', TO_DATE('01/02/1972', 'DD/MM/YYYY'), 
'22044617250');

INSERT INTO PRODUTO VALUES (1, 'SAMSUNG J7 - PRIME', 10);

INSERT INTO PRODUTO VALUES (2, 'SAMSUNG J5 - PRIME', 10);

INSERT INTO PRODUTO VALUES (3, 'IPHONE X', 10);

INSERT INTO PRODUTO VALUES (4, 'MOTO G 5S', 10);

INSERT INTO PRODUTO VALUES (5, 'IPHONE 6S', 10);

INSERT INTO PEDIDO VALUES (1, 4, TO_DATE('10/03/2018', 'DD/MM/YYYY'), 1400.99);

INSERT INTO ITEMPEDIDO VALUES (1, 1, 800.99, 1, 1);

INSERT INTO ITEMPEDIDO VALUES (1, 2, 600.00, 1, 2);

INSERT INTO PEDIDO VALUES (2, 2, TO_DATE('17/03/2018', 'DD/MM/YYYY'), 1349.50);

INSERT INTO ITEMPEDIDO VALUES (2, 1, 749.50, 1, 4);

INSERT INTO ITEMPEDIDO VALUES (2, 2, 600.00, 1, 2);

INSERT INTO PEDIDO VALUES (3, 1, TO_DATE('20/03/2018', 'DD/MM/YYYY'), 2590.10);

INSERT INTO ITEMPEDIDO VALUES (3, 1, 1800.71, 1, 5);

INSERT INTO ITEMPEDIDO VALUES (3, 2, 789.39, 1, 4);

INSERT INTO PEDIDO VALUES (4, 5, TO_DATE('21/03/2018', 'DD/MM/YYYY'), 2590.10);

INSERT INTO ITEMPEDIDO VALUES (4, 1, 5099.00, 1, 3);

INSERT INTO PEDIDO VALUES (5, 7, TO_DATE('10/03/2018', 'DD/MM/YYYY'), 1800.00);

INSERT INTO ITEMPEDIDO VALUES (5, 1, 600.00, 3, 2);

"Crie um select que exibe quais são os três PRODUTOS com a maior quantidade de PEDIDOS. Exiba o nome e o código do produto"

 

Oi pessoal. por favor preciso da ajuda de vocês . 

Eu queria criar um SELECT que exiba os três PRODUTOS com a maior quantidade de PEDIDOS.
Retornando nome do produto ( PRODUTO.DESCRICAO )  e  o código dele ( PRODUTO.IDPRODUTO )

 

Eu tentei das seguintes formas mas não consegui . estou novinha ainda em oracle

 

 

SELECT PRODUTO.DESCRICAO, PRODUTO.IDPRODUTO, ITEMPEDIDO.QUANTIDADE
FROM ITEMPEDIDO, PEDIDO, PRODUTO
WHERE ITEMPEDIDO.IDPEDIDO = PEDIDO.IDPEDIDO
AND PRODUTO.IDPRODUTO = ITEMPEDIDO.IDPRODUTO
GROUP BY IDPRODUTO

 

neste código só roda sem erro se eu tirar o GROUP BY IDPRODUTO.  Mas não gera o resultado esperado :dissapointed_relieved:

853287518_411Aug_3117_16.png.e83d1688dd4b00720c13b2811fb28bb9.png

 

SELECT ITEMPEDIDO.IDPRODUTO, COUNT(*) AS VENDIDO
FROM ITEMPEDIDO
GROUP BY IDPRODUTO
ORDER BY VENDIDO DESC

 

 

Aqui eu até consegui chegar perto mas não consegui acrescentar o nome do produto ( que é PRODUTO.DESCRICAO) e o produto com idproduto 2 ( que é o J5 ) não são só 3 vendidos. SÃO 5 !!! ai ai ai ai

 

....e apos muita batalha eu consegui fazer isso ... que tbm ainda não é o ideal

 

SELECT * FROM (SELECT ITEMPEDIDO.IDPRODUTO, COUNT(*) AS VENDIDO
FROM ITEMPEDIDO
GROUP BY IDPRODUTO
ORDER BY VENDIDO DESC)
WHERE ROWNUM <4

 

1077575288_412Aug_3117_18.png.6543c8ff67f6f82a491781355db5f978.png

 

... demorei horrores pra fazer esse WHERE ROWNUM <4  rodar sem erro... pois é pessoal. só historia triste ! kkkkk:joy:

 

 

Agora estou tentando esse aqui mas não terminei 

 

SELECT PRODUTO.DESCRICAO AS NOME, ITEMPEDIDO.IDPRODUTO
FROM PRODUTO, ITEMPEDIDO
WHERE PRODUTO.IDPRODUTO = ITEMPEDIDO.IDPRODUTO

742200536_413Aug_3117_19.png.49ca02da59c0b892fa13205948b8e9e1.png

 

 

acabei parando no meio do caminho e decidi recorrer ao imasters ! 

 

vou continuar tentando ... sera que consigo antes de alguem aparecer aqui ? rsrsrs

 

obrigada ! boa sorte pessoal.

 

 

 

ah ! já ia esquecendo estou usando o livesql.oracle.com

 

e vou deixar aqui tbm a consulta das tabelas 

 

 

448911346_410Aug_3102_23.png.4f936e75f7309694cfa33dcd924b2f6c.png1581180063_409Aug_3102_23.png.3216b4a2d70f5180d2812bfb3c46502f.png2043533730_408Aug_3102_22.png.58bec7d9cc955741a2a26639289ef9b1.png972256885_403Aug_3102_20.png.22dccf82c03a9bac2ccc0fc81c1cdb79.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

6 respostas a esta questão

Recommended Posts

  • 0

olá. se entendi bem,
tente o seguinte:

select PRODUTO.DESCRICAO, PRODUTO.IDPRODUTO,
sum(itempedido.quantidade) total
FROM ITEMPEDIDO, PRODUTO
where produto.Idproduto=itempedido.Idproduto
GROUP BY Itempedido.IDPRODUTO
order by total desc
WHERE ROWNUM <4

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Em 02/09/2021 at 14:11, Fernando C disse:

olá. se entendi bem,
tente o seguinte:


select PRODUTO.DESCRICAO, PRODUTO.IDPRODUTO,
sum(itempedido.quantidade) total
FROM ITEMPEDIDO, PRODUTO
where produto.Idproduto=itempedido.Idproduto
GROUP BY Itempedido.IDPRODUTO
order by total desc
WHERE ROWNUM <4

 

 

Oi Fernando C. Boa Noite ! Obrigado por se disponibilizar a ajudar!

Eu rodei seu código e deu isso aqui ....

 

754818932_421Sep_0518_45.png.bed500e76b372479f0184b235bc8f60d.png

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Oi. desculpe a demora. esqueci de finalizar o comando com um ponto e virgula (;).

a ultima linha ficaria assim, portanto:

WHERE ROWNUM <4;

tente ai e qqer coisa retorne.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Oi Fernando , bom dia . primeiramente gostaria de agradecer pela ajuda !

image.png.45cb9bd116a08a6608d6a3a3e411e6a2.png

 

Mew esse ROWNUM me dá maior trabalho pra rodar . preciso colocar select dentro de select para que ele funcione e isso ainda me deixa meio confusa . 

 

Igual aqui amigo

 

image.png.75ed212bf0ab33c979931c1647653955.png

 

 

Sera que se a gente fizer isso com codigo que você fez dara certo ?
vou tentar aqui ok ?

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

 

Veja se dará certo

 

select * from (select PRODUTO.descricao, PRODUTO.Idproduto, sum(ITEMPEDIDO.quantidade) total
FROM ITEMPEDIDO, PRODUTO
WHERE PRODUTO.Idproduto=ITEMPEDIDO.Idproduto
GROUP BY ITEMPEDIDO.Idproduto
ORDER BY total DESC) WHERE ROWNUM <= 4;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Elisame Araújo
      Seguinte,
      Eu tenho uma página de atualização de lista de faixas que estão agrupados por álbum, com os dados vindo através de parâmetros na url como o albumID e detalhes e são retornados dentro de um while.
      O que eu queria é que ele atualizasse todos os campos que fossem editados se eles fossem modificados, mas o que o ocorre é que apenas o último registro é atualizado.
       
      O script que traz as faixas:
       
      <tr> <form class="form-group" method="post" action="includes/funcoes/atualizar-faixas.php"> <?php while($sqlSelect = mysqli_fetch_assoc($result)) { ?> <td><input type="text" value="<?php echo $sqlSelect['trackNumero'] ?>" class="form-control" name="trackNumero"></td> <td><input type="text" value="<?php echo $sqlSelect['trackTitulo'] ?>" class="form-control" name="trackTitulo"></td> <td><input type="text" value="<?php echo $sqlSelect['trackTraducao'] ?>" class="form-control" name="trackTraducao"></td> <td><input type="text" value="<?php echo $sqlSelect['trackID'] ?>" class="form-control" name="trackID" readonly></td> <td><input type="text" value="<?php echo $sqlSelect['albumID'] ?>" class="form-control" name="albumID" readonly></td> </tr> <?php } ?> <tr><a href="albuns-lista.php"><button name="cancelar" id="cancelar" class="btn btn-danger mb-3 mr-1" type="button"> <i class="fa-solid fa-arrow-left"></i> Voltar</button></a></tr> <tr><button name="update" id="update" class="btn btn-success mb-3" type="submit" value=""><i class="fa-solid fa-arrow-up-from-bracket"></i> Atualizar</button></tr> </form>  
       
      E esse é o resultado do código acima:

       
      E este é o código que uso pra fazer o UPDATE no banco de dados:
      <?php require_once "../db/albuns.php"; if(isset($_POST['update'])){ $trackNumero = $_POST['trackNumero']; $trackTitulo = mysqli_real_escape_string($conecta2, $_POST['trackTitulo']); $trackTraducao = $_POST['trackTraducao']; $trackID = $_POST['trackID']; $albumID = $_POST['albumID']; $sqlUpdate = "UPDATE `faixas` SET `trackTitulo` = '$trackTitulo', `trackNumero` = '$trackNumero', `trackTraducao` = '$trackTraducao' WHERE `albumID` = $albumID AND `trackID` = $trackID"; if($atualizaDados = mysqli_query($conecta2, $sqlUpdate) == true){ var_dump($sqlUpdate); //header("location: ../../albuns.php?update=sucesso"); } else { //header("location: ../../albuns.php?update=erro"); } } ?> Como eu faria para que cada linha fosse atualizada individualmente? Já tentei diversos métodos, mas o resultado continua sendo a atualização apenas do último registro no banco, ignorando o restante das atualizações.
    • Por luiz0o
      Estou fazendo um projeto para faculdade, e tenho um formulário, esse formulário precisa enviar as respostas tanto para um banco de dados, mas também tem que enviar para uma API que envia para meu email, mas não sei como fazer essas duas coisas ao mesmo tempo
    • Por michelramos
      tenho a seguinte view local no mysql:
      select orcamentos.id, orcamentos.id_empresa, 'orcamento' as tipo, orcamentos.data_aprovacao, month(orcamentos.data_aprovacao) as mes, year(orcamentos.data_aprovacao) as ano, sum(itens_orcamentos.quantidade) as quantidade, sum(itens_orcamentos.preco_unidade) as preco_unidade, sum(itens_orcamentos.desconto) as desconto, sum(itens_orcamentos.preco_unidade_desconto) as preco_unidade_desconto, orcamentos.desconto_orcamento as desconto_orcamento, sum(itens_orcamentos.preco_total) as preco_total, (orcamentos.total_outros_itens+orcamentos.outras_despesas+(select sum(preco_total) from itens_orcamentos where id_orcamento = orcamentos.id)) as total_sem_desconto, ( (orcamentos.total_outros_itens+orcamentos.outras_despesas+(select sum(preco_total) from itens_orcamentos where id_orcamento = orcamentos.id)) - (((orcamentos.total_outros_itens+orcamentos.outras_despesas+(select sum(preco_total) from orcamentos where id_orcamento = orcamentos.id))*orcamentos.desconto_orcamento)/100) ) as total_com_desconto from orcamentos inner join itens_orcamentos on orcamentos.id = itens_orcamentos.id_orcamento where orcamentos.id_situacao in (3,5,6) group by orcamentos.id union all select ordens_servico.id, ordens_servico.id_empresa, 'ordem_servico'as tipo, ordens_servico.data_aprovacao, month(ordens_servico.data_aprovacao) as mes, year(ordens_servico.data_aprovacao) as ano, sum(itens_ordem_servico.quantidade) as quantidade, sum(itens_ordem_servico.preco_unidade) as preco_unidade, sum(itens_ordem_servico.desconto) as desconto, sum(itens_ordem_servico.preco_unidade_desconto) as preco_unidade_desconto, ordens_servico.desconto as desconto_ordem_servico, sum(itens_ordem_servico.preco_total) as preco_total, ((select sum(preco_total) from itens_ordem_servico where id_ordem_servico = ordens_servico.id and tipo = 'produto')) as total_sem_desconto, ( (select sum(preco_total) from itens_ordem_servico where id_ordem_servico = ordens_servico.id and tipo = 'produto') - (((select sum(preco_total) from itens_ordem_servico where id_ordem_servico = ordens_servico.id and tipo = 'produto')*ordens_servico.desconto)/100) ) as total_com_desconto from ordens_servico inner join itens_ordem_servico on ordens_servico.id = itens_ordem_servico.id_ordem_servico where itens_ordem_servico.tipo = 'produto' and ordens_servico.id_situacao in(3,5,6) group by ordens_servico.id union all /* select nfe.id, nfe.id_empresa, 'nfe'as tipo, nfe.data_emissao, month(nfe.data_emissao) as mes, year(nfe.data_emissao) as ano, itens_nfe.descricao as nome, itens_nfe.id_item, coalesce(itens_nfe.quantidade_tributavel) as quantidade, coalesce(itens_nfe.valor_unitario_tributavel, 0) as preco_unidade, null, coalesce(itens_nfe.valor_unitario_tributavel, 0) as preco_unidade_desconto, (valor_unitario_tributavel*quantidade_tributavel) as preco_total from nfe inner join itens_nfe on nfe.id = itens_nfe.id_nfe where itens_nfe.tipo_item = 'produto' and nfe.id_situacao = 3 and nfe.incluir_no_faturamento = 's' */ select nfe.id, nfe.id_empresa, 'nfe'as tipo, nfe.data_emissao, month(nfe.data_emissao) as mes, year(nfe.data_emissao) as ano, null, (nfe.valor_total-nfe.valor_frete) as preco_unidade, null, (nfe.valor_total-nfe.valor_frete) as preco_unidade_desconto, null, (nfe.valor_total-nfe.valor_frete) as preco_total, (nfe.valor_total-nfe.valor_frete) as total_sem_desconto, (nfe.valor_total-nfe.valor_frete) as total_com_desconto from nfe where nfe.id_situacao = 3 and nfe.incluir_no_faturamento = 's' group by nfe.id union all select nfse.id, nfse.id_empresa, 'nfse'as tipo, nfse.data_emissao, month(nfse.data_emissao) as mes, year(nfse.data_emissao) as ano, null as quantidade, (nfse.valor_servicos-nfse.valor_deducoes) as preco_unidade, null, (nfse.valor_servicos-nfse.valor_deducoes) as preco_unidade_desconto, (nfse.valor_servicos-nfse.valor_deducoes) as preco_total, null, (nfse.valor_servicos-nfse.valor_deducoes) as total_sem_desconto, (nfse.valor_servicos-nfse.valor_deducoes) as total_com_desconto from nfse where nfse.id_situacao = 3 and nfse.incluir_no_faturamento = 's' group by nfse.id  
      que, quando coloco no banco online fica da seguinte forma:
      SELECT `orcamentos`.`id` AS `id`, `orcamentos`.`id_empresa` AS `id_empresa`, 'orcamento' AS `tipo`, `orcamentos`.`data_aprovacao` AS `data_aprovacao`, MONTH ( `orcamentos`.`data_aprovacao` ) AS `mes`, YEAR ( `orcamentos`.`data_aprovacao` ) AS `ano`, sum( `itens_orcamentos`.`quantidade` ) AS `quantidade`, sum( `itens_orcamentos`.`preco_unidade` ) AS `preco_unidade`, sum( `itens_orcamentos`.`desconto` ) AS `desconto`, sum( `itens_orcamentos`.`preco_unidade_desconto` ) AS `preco_unidade_desconto`, `orcamentos`.`desconto_orcamento` AS `desconto_orcamento`, sum( `itens_orcamentos`.`preco_total` ) AS `preco_total`, `orcamentos`.`total_outros_itens` + `orcamentos`.`outras_despesas` + ( SELECT sum( `itens_orcamentos`.`preco_total` ) FROM `itens_orcamentos` WHERE `itens_orcamentos`.`id_orcamento` = `orcamentos`.`id` ) AS `total_sem_desconto`, `orcamentos`.`total_outros_itens` + `orcamentos`.`outras_despesas` + ( SELECT sum( `itens_orcamentos`.`preco_total` ) FROM `itens_orcamentos` WHERE `itens_orcamentos`.`id_orcamento` = `orcamentos`.`id` ) - ( `orcamentos`.`total_outros_itens` + `orcamentos`.`outras_despesas` + ( SELECT sum( `itens_orcamentos`.`preco_total` ) FROM `orcamentos` WHERE `itens_orcamentos`.`id_orcamento` = `orcamentos`.`id` ) ) * `orcamentos`.`desconto_orcamento` / 100 AS `total_com_desconto` FROM ( `orcamentos` JOIN `itens_orcamentos` ON ( `orcamentos`.`id` = `itens_orcamentos`.`id_orcamento` ) ) WHERE `orcamentos`.`id_situacao` IN ( 3, 5, 6 ) GROUP BY `orcamentos`.`id` UNION ALL SELECT `ordens_servico`.`id` AS `id`, `ordens_servico`.`id_empresa` AS `id_empresa`, 'ordem_servico' AS `tipo`, `ordens_servico`.`data_aprovacao` AS `data_aprovacao`, MONTH ( `ordens_servico`.`data_aprovacao` ) AS `mes`, YEAR ( `ordens_servico`.`data_aprovacao` ) AS `ano`, sum( `itens_ordem_servico`.`quantidade` ) AS `quantidade`, sum( `itens_ordem_servico`.`preco_unidade` ) AS `preco_unidade`, sum( `itens_ordem_servico`.`desconto` ) AS `desconto`, sum( `itens_ordem_servico`.`preco_unidade_desconto` ) AS `preco_unidade_desconto`, `ordens_servico`.`desconto` AS `desconto_ordem_servico`, sum( `itens_ordem_servico`.`preco_total` ) AS `preco_total`, ( SELECT sum( `itens_ordem_servico`.`preco_total` ) FROM `itens_ordem_servico` WHERE `itens_ordem_servico`.`id_ordem_servico` = `ordens_servico`.`id` AND `itens_ordem_servico`.`tipo` = 'produto' ) AS `total_sem_desconto`, ( SELECT sum( `itens_ordem_servico`.`preco_total` ) FROM `itens_ordem_servico` WHERE `itens_ordem_servico`.`id_ordem_servico` = `ordens_servico`.`id` AND `itens_ordem_servico`.`tipo` = 'produto' ) - ( SELECT sum( `itens_ordem_servico`.`preco_total` ) FROM `itens_ordem_servico` WHERE `itens_ordem_servico`.`id_ordem_servico` = `ordens_servico`.`id` AND `itens_ordem_servico`.`tipo` = 'produto' ) * `ordens_servico`.`desconto` / 100 AS `total_com_desconto` FROM ( `ordens_servico` JOIN `itens_ordem_servico` ON ( `ordens_servico`.`id` = `itens_ordem_servico`.`id_ordem_servico` ) ) WHERE `itens_ordem_servico`.`tipo` = 'produto' AND `ordens_servico`.`id_situacao` IN ( 3, 5, 6 ) GROUP BY `ordens_servico`.`id` UNION ALL SELECT `nfe`.`id` AS `id`, `nfe`.`id_empresa` AS `id_empresa`, 'nfe' AS `tipo`, `nfe`.`data_emissao` AS `data_emissao`, MONTH ( `nfe`.`data_emissao` ) AS `mes`, YEAR ( `nfe`.`data_emissao` ) AS `ano`, NULL AS `NULL`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `preco_unidade`, NULL AS `NULL`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `preco_unidade_desconto`, NULL AS `NULL`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `preco_total`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `total_sem_desconto`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `total_com_desconto` FROM `nfe` WHERE `nfe`.`id_situacao` = 3 AND `nfe`.`incluir_no_faturamento` = 's' GROUP BY `nfe`.`id` UNION ALL SELECT `nfse`.`id` AS `id`, `nfse`.`id_empresa` AS `id_empresa`, 'nfse' AS `tipo`, `nfse`.`data_emissao` AS `data_emissao`, MONTH ( `nfse`.`data_emissao` ) AS `mes`, YEAR ( `nfse`.`data_emissao` ) AS `ano`, NULL AS `quantidade`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `preco_unidade`, NULL AS `NULL`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `preco_unidade_desconto`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `preco_total`, NULL AS `NULL`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `total_sem_desconto`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `total_com_desconto` FROM `nfse` WHERE `nfse`.`id_situacao` = 3 AND `nfse`.`incluir_no_faturamento` = 's' GROUP BY `nfse`.`id`  
      Não sei se a diferença tem haver com o problema, que é o seguinte:
      - ao puxar um registro x no banco local, o resultado retornado é o seguinte: 
      - id | id_empresa | tipo | data_aprovacao | mes | ano | quantidade | preco_unidade | desconto | preco_unidade_descont | desconto_orcamento | preco_total | total_sem_desconto - 181 1 orcamento 2022-10-04 00:00:00 10 2022 67,00 319,05 0,00 319,05 5,00 1350,90 1350,90 1283,355000 - ao puxar o mesmo registro no banco online, o resultado retornado é: - 181 1 orcamento 2022-10-04 00:00:00 10 2022 67,00 319,05 0,00 319,05 5,00 1350,90 1350,90 1318,649994 a ultima coluna está apresentando uma discrepência de mais ou menos 35 e não consegui encontrar nada a respeito
       
      obs: ambos os bancos são idênticos, os dados são idênticos.
    • Por dfoliveira82
      Bom dia senhores,
       
      sou novo no Oracle, antes trabalhava com SQL SERVER, e me deparei com algo que ja estou a horas tentando solucionar mas nao consegui.
      Nessa Trigger que vou postar, quando mando compilar ela, fala que esta faltando uma virgula, apos o values, mas nao precisa dela e nao acho onde pode ser essa virgula faltante.
      CREATE OR REPLACE TRIGGER JOBS_CL_INSERE_USUARIO AFTER INSERT OR UPDATE OF EXPORTADA_AVA ON SITE_USUARIOS REFERENCING NEW AS NEW BEGIN INSERT INTO BLACKBEAN.TBL_USERS VALUES (NULL, 'INSERT', NULL, 'db', '0', '0', '0', TO_CHAR(:NEW.CPF), MD5(:NEW.CPF||'port@l'), TO_CHAR(:NEW.CPF), SUBSTRING(:NEW.NOME, 1, INSTR(:NEW.NOME, ' ')-1), SUBSTRING(:NEW.NOME, INSTR(:NEW.NOME, ' ')+1, LEN(:NEW.NOME)), 'email@email.com', NULL, NULL, DATE_TO_UNIX_TS(SYSDATE), NULL, NULL); END; / Se alguem puder me ajudar agradeceria.
    • Por Carlos Antoliv
      Senhores, bom dia.
       
      tenho um campo status. Então, a ideia é mudar o status. Consigo alterar o status quando necessário. Daí, pensei em todas vez que alterar, salvar o id do usuário, data, hora, o último status alterado...
      consigo fazer isso com INSERT, depois do UPDATE.
       
      Nao uso trigger. Até tentei fazer, mas não saiu como eu queria.
       
      Então, para os maiores entendedores do assunto, a melhor prática seria a TRIGGER ou INSERT ? Melhor prática ou o que mais funciona na prática ?
       
      Alguém poderia dissertar sobre isso ?
      Vlw..abço
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.