Jump to content

alextds

Members
  • Content count

    2
  • Joined

  • Last visited

Community Reputation

0 Comum

About alextds

  1. alextds

    sql para rank das 5 maiores vendas

    olá gostaria de saber como fazer para obter o rank das 5 maiores vendas. tenho a seguinte tabela: data produto valor 31/01/2018 calça 100 31/01/2018 calça 50 31/01/2018 camisa 30 31/01/2018 camisa 30 31/01/2018 sapato 75 31/01/2018 bermuda 100 31/01/2018 meia 10 31/01/2018 tenis 65 31/01/2018 luva 20 31/01/2018 luva 20 31/01/2019 calça 100 31/01/2019 calça 50 31/01/2019 camisa 30 31/01/2019 camisa 30 31/01/2019 sapato 75 31/01/2019 bermuda 100 31/01/2019 meia 10 31/01/2019 tenis 65 31/01/2019 luva 20 31/01/2019 luva 20 Preciso que totalize os valores de acordo a data e produto e que apareça somente os 5 primeiros dessa forma : data produto valor rank 31/01/2018 calça 150 1 31/01/2018 bermuda 100 2 31/01/2018 sapato 75 3 31/01/2018 tenis 65 4 31/01/2018 camisa 60 5 31/01/2019 calça 150 1 31/01/2019 bermuda 100 2 31/01/2019 sapato 75 3 31/01/2019 tenis 65 4 31/01/2019 camisa 60 5 Se alguém tiver uma solução facil agradeço.
  2. Tenho as seguintes tabelas com os dados: table_ent | table_out cod_prod date_ent vl_prod | cod_prod date_out vl_prod 362 14/09/2015 100,00 | 362 01/10/2016 700,00 362 15/09/2015 150,00 | 362 07/10/2016 800,00 362 16/09/2015 10,00 | 362 29/10/2016 100,00 362 05/10/2016 20,00 | 362 01/10/2016 800,00 362 06/10/2016 300,00 | 362 07/10/2016 460,00 | 362 08/10/2016 510,00 | 362 23/10/2016 620,00 | 362 24/10/2016 750,00 | 362 25/10/2016 810,00 | 362 30/10/2019 920,00 | Usei um inner join com max(date) porém o resultado gerado foi esse : cod_ent date_out vl_ent cod_ent vl_ent date_ent ------ -------- ------ --- --- ------- 362 01/10/16 700 362 100 14/09/15 362 01/10/16 800 362 10 16/09/15 362 01/10/16 700 362 150 15/09/15 362 01/10/16 700 362 10 16/09/15 362 01/10/16 800 362 150 15/09/15 362 01/10/16 800 362 100 14/09/15 362 07/10/16 100 362 20 05/10/16 362 07/10/16 100 362 300 06/10/16 362 07/10/16 100 362 100 14/09/15 362 07/10/16 100 362 10 16/09/15 362 07/10/16 100 362 150 15/09/15 362 29/10/16 920 362 510 08/10/16 362 29/10/16 920 362 750 24/10/16 362 29/10/16 920 362 460 07/10/16 362 29/10/16 920 362 10 16/09/15 Preciso obter este resultado abaixo : cod_ent date_out vl_ent cod_ent vl_ent date_ent ------ -------- ------ --- --- ------- 362 01/10/16 700 362 100 14/09/15 362 01/10/16 800 362 10 16/09/15 362 07/10/16 100 362 20 06/10/16 362 29/10/16 920 362 750 25/10/16 estou usando o seguinte script: select a.cod_prod, a.date_out, a.vl_prod, sum(b.cod_prod) as cod_prod, sum(b.vl_prod) vl_prod, max(b.date_ent) as date_ent from table_out a join table_ent b on b.cod_prod = a.cod_prod and b.date_ent < a.date_out group by a.cod_prod, a.date_out, b.cod_prod, a.vl_prod, b.vl_prod order by a.cod_prod, a.date_out;
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.