none
ajuda com selecao na query RRS feed

  • Pergunta

  • Boa tarde pessoal, estou desenvolvendo uma query em que devo buscar pedidos de vendas futuros, alocar eles em caminhões conforme o peso e data prevista de entrega e mostrar a eficiência da carga futura.

    Meu problema é que minha query está resultando assim:
    Pedido 1 = 100 kg entrega 20/03/14
    caminhão 1  capacidade = 200 kg

    caminhao 2 capacidade = 500 kg

    a query está alocando o pedido em ambos os caminhões, eis que surge minha duvida, preciso fazer com ela aloque somente a um caminhão, aquele que a eficiência for maior (PESO / CAPACIDADE *100) e não alocar em ambos, sinceramente, não sei mais como fazer isso, tentei n formas possíveis e não consegui nenhuma, por isso peço a ajuda de vocês.

    Muito obrigado.

    select DISTINCT ' ',C5_FILIAL,C5_NUM,C5_CLIENTE, C5_LOJACLI,SA1.A1_NREDUZ,SA1.A1_REGIAO,SX5.X5_DESCRI,C5_PBRUTO, C5_FECENT as DT, 
    DA8.DA8_DESC AS ROTA, DA3.DA3_COD AS Veiculo, ISNULL(DA3.DA3_PLACA,'SEM VEICULO') AS PLACA,DA3.DA3_CAPACM AS Capacidade, (C5_PBRUTO/DA3.DA3_CAPACM*100) AS EFICIENCIA from SC5990 SC5
    INNER JOIN SC6990 SC6 on SC6.C6_FILIAL = SC5.C5_FILIAL AND SC6.C6_NUM = SC5.C5_NUM AND SC6.D_E_L_E_T_ = ' '
    INNER JOIN SA1990 SA1 ON SA1.A1_COD = SC5.C5_CLIENTE AND SA1.A1_LOJA = SC5.C5_LOJACLI AND SA1.D_E_L_E_T_ = ' '
    inner JOIN DA7990 DA7 ON DA7.DA7_FILIAL = SC5.C5_FILIAL AND  SA1.A1_CEP >= DA7.DA7_CEPDE AND SA1.A1_CEP <= DA7.DA7_CEPATE and DA7.D_E_L_E_T_ <>'*'
    inner join DA9990 DA9 ON DA9.DA9_FILIAL = DA7.DA7_FILIAL AND DA9.DA9_PERCUR = DA7.DA7_PERCUR AND DA9.DA9_ROTA = DA7.DA7_ROTA and DA9.D_E_L_E_T_ <>'*'
    LEFT JOIN SX5990 SX5 ON SX5.X5_FILIAL = SC5.C5_FILIAL AND SA1.A1_REGIAO = SX5.X5_CHAVE AND SX5.X5_TABELA = 'A2' AND SX5.D_E_L_E_T_ =' '
    /*
    left Join DA3990 DA3 ON DA3.DA3_FILIAL = SC5.C5_FILIAL AND DA3.D_E_L_E_T_ = ' ' AND DA3.DA3_STATUS = '2' and DA3.DA3_ATIVO ='1' 
    and   (C5_PBRUTO/DA3.DA3_CAPACM*100) = (select max (C5_PBRUTO/Dxx.DA3_CAPACM*100) from DA3990  Dxx, SC5990 SCC 
    where Dxx.DA3_FILIAL = '01' and    Dxx.DA3_FILIAL = SCC.C5_FILIAL AND Dxx.D_E_L_E_T_ <> '*' AND Dxx.DA3_STATUS = '2' and Dxx.DA3_ATIVO ='1' 
    AND SCC.D_E_L_E_T_ <> '*' and SCC.C5_FECENT <> ' ' ) */
    left Join DA3990 DA3 ON DA3.DA3_FILIAL = SC5.C5_FILIAL AND DA3.D_E_L_E_T_ = ' ' AND DA3.DA3_STATUS = '2' and DA3.DA3_ATIVO ='1'
     and DA3.DA3_CAPACM >= SC5.C5_PBRUTO
    left join DA8990 DA8 ON DA8.DA8_FILIAL = SC5.C5_FILIAL AND DA8.DA8_COD = DA9.DA9_ROTEIR AND DA8.D_E_L_E_T_ = ' '
    WHERE  SC6.C6_QTDENT < SC6.C6_QTDVEN AND SC5.D_E_L_E_T_ = ' ' and SC5.C5_FECENT <> ' '
    order by C5_FECENT

    quarta-feira, 19 de março de 2014 16:43

Respostas