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