1
resposta

Select com novo campo

Eu estou tentando criar um Select para satisfazer a seguinte questão:

Pesquise os itens que foram vendidos com desconto. As colunas presentes no resultado da consulta são: ID_NF, ID_ITEM, COD_PROD, VALOR_UNIT E O VALOR VENDIDO. OBS: O valor vendido é igual ao VALOR_UNIT - (VALOR_UNIT*(DESCONTO/100))

Por alguma razão o meu Valor Vendido sempre retorna 0, alguém saberia dizer o porquê?

Ai vai o código:

 CREATE TABLE MERCADO (
     ID_NF INTEGER,
    ID_ITEM INTEGER,
    COD_PROD INTEGER,
    VALOR_UNIT NUMERIC(5,2),
    QUANTIDADE INTEGER,
    DESCONTO INTEGER
 );

 INSERT INTO MERCADO VALUES
     (1, 1, 1, 25, 10, 5),
    (1,2,2,13.50,3,NULL),
    (1, 3, 3, 15, 2,NULL),
    (1,4,4,10,1,NULL),
    (1,5,5,30,1,NULL),
    (2,1,3,15,4,NULL),
    (2,2,4,10,5,NULL),
    (2,3,5,30,7,NULL),
    (3,1,1,25,5,NULL),
    (3,2,4,10,4,NULL),
    (3,3,5,30,5,NULL),
    (3,4,2,13.5,7,NULL),
    (4,1,5,30,10,15),
    (4,2,4,10,12,5),
    (4,3,1,25,13,5),
    (4,4,2,13.5,15,5),
    (5,1,3,15,3,NULL),
    (5,2,5,30,6,NULL),
    (6,1,1,25,22,15),
    (6,2,3,15,25,20),
    (7,1,1,25,10,3),
    (7,2,2,13.5,10,4),
    (7,3,3,15,10,4),
    (7,4,5,30,10,1);


-- COLOCAR O VALOR VENDIDO -- 

SELECT ID_NF, ID_ITEM, COD_PROD, VALOR_UNIT, VALOR_UNIT-(VALOR_UNIT*(DESCONTO/100)) AS VALOR_VENDIDO
FROM MERCADO
WHERE DESCONTO IS NOT NULL;
1 resposta

Olá Karolina, tudo bem?

O seu código funcionou quando remove o parêntese que priorizava a divisão do desconto por 100:

O erro que identifiquei  no código da Karalona, foi o parêntese que ela informou para dar prioridade a divisão do desconto por 100

Alterando o código da Karolina, removendo o parêntese onde está o desconto divido por 100 e inserindo o ROUND

Também inclui a função ROUND, para exibir apenas duas casas decimais:

inserindo o ROUND no código da Karolina para exibir apenas duas casas decimais

SELECT ID_NF, ID_ITEM, COD_PROD, VALOR_UNIT
,ROUND(VALOR_UNIT-(VALOR_UNIT*DESCONTO/100),2) AS VALOR_VENDIDO
FROM MERCADO
WHERE DESCONTO IS NOT NULL;

Espero ter ajudado Karolina e bons estudos!