Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde
sou novato estou precisando de ajuda nesse sql, preciso selecionar a DATA_VENDA_FIM mais recente deixando apenas um registro de de cada veiculo VEICULO ou pode ser por NUMERO_NOTA_FISCAL, tentei utilizar o group by mais nao encontrei onde colocar.
desde ja agradeço, obrigado.
select DISTINCT MIT.EMPRESA,
MIT.REVENDA,
MIT.NUMERO_NOTA_FISCAL,
MOD.DES_MODELO,
BON.DTA_VENDA_FIM,
MIT.VEICULO,
MIT.VAL_TOTAL,
MIT.VAL_CUSTO,
MIT.VAL_DESCONTO,
BON.VAL_BONUS,
MCA.DTA_ENTRADA_SAIDA
from fat_movimento_veiculo MIT
LEFT OUTER JOIN fat_movimento_capa MCA ON
MIT.NUMERO_NOTA_FISCAL = MCA.NUMERO_NOTA_FISCAL
LEFT OUTER JOIN vei_veiculo VEI ON VEI.VEICULO = MIT.VEICULO
LEFT OUTER JOIN vei_bonus BON ON VEI.MODELO = BON.MODELO
LEFT OUTER JOIN vei_modelo MOD ON MOD.MODELO = VEI.MODELO
where MIT.EMPRESA = 2
and MCA.DTA_ENTRADA_SAIDA BETWEEN '01-JAN-2016' AND '31-JAN-2016'
and MCA.TIPO_TRANSACAO = 'V21'
and BON.DTA_VENDA_FIM = (SELECT MAX(BON.DTA_VENDA_FIM)
FROM VEI_BONUS)infelizmente nao, ate eu uso a condicao MAX so que acho que falta a condicao GROUP BY que nao consigo utilizar sem dar erro.
Faltou talvez igualar o modelo no subselect.
desculpa mais nao entendi, igualar qual o campo dai ? se nao for pedir muito poderia me demonstrar.
grato.
select DISTINCT MIT.EMPRESA,
MIT.REVENDA,
MIT.NUMERO_NOTA_FISCAL,
MOD.DES_MODELO,
BON.DTA_VENDA_FIM,
MIT.VEICULO,
MIT.VAL_TOTAL,
MIT.VAL_CUSTO,
MIT.VAL_DESCONTO,
BON.VAL_BONUS,
MCA.DTA_ENTRADA_SAIDA
from fat_movimento_veiculo MIT
LEFT OUTER JOIN fat_movimento_capa MCA ON
MIT.NUMERO_NOTA_FISCAL = MCA.NUMERO_NOTA_FISCAL
LEFT OUTER JOIN vei_veiculo VEI ON VEI.VEICULO = MIT.VEICULO
LEFT OUTER JOIN vei_bonus BON ON VEI.MODELO = BON.MODELO
LEFT OUTER JOIN vei_modelo MOD ON MOD.MODELO = VEI.MODELO
where MIT.EMPRESA = 2
and MCA.DTA_ENTRADA_SAIDA BETWEEN '01-JAN-2016' AND '31-JAN-2016'
and MCA.TIPO_TRANSACAO = 'V21'
and BON.DTA_VENDA_FIM = (SELECT MAX(BON.DTA_VENDA_FIM)
FROM VEI_BONUS BON2
WHERE BON2.MODELO = BON.MODELO)--<<<<====ele continua trazendo varias linha do mesmo veiculo
Ex. abaixo.
NUMERO_NOTA_FISCAL MODELO DES_MODELO DTA_VENDA_FIM VEICULO VAL_TOTAL 109279 CBM5EX N2 L02A CLIO HATCH EXPRESSION 1.0 16V 5PTS 03/12/2015 RCHN00325 37500,000 109279 CBM5EX N2 L02A CLIO HATCH EXPRESSION 1.0 16V 5PTS 02/02/2016 RCHN00325 37500,000 109279 CBM5EX N2 L02A CLIO HATCH EXPRESSION 1.0 16V 5PTS 15/02/2016 RCHN00325 37500,000 109279 CBM5EX N2 L02A CLIO HATCH EXPRESSION 1.0 16V 5PTS 31/10/2015 RCHN00325 37500,000 8355 CBM5EX N2 L02A CLIO HATCH EXPRESSION 1.0 16V 5PTS 31/10/2015 RCHN00328 37500,000 8355 CBM5EX N2 L02A CLIO HATCH EXPRESSION 1.0 16V 5PTS 02/02/2016 RCHN00328 37500,000 8355 CBM5EX N2 L02A CLIO HATCH EXPRESSION 1.0 16V 5PTS 03/12/2015 RCHN00328 37500,000 8355 CBM5EX N2 L02A CLIO HATCH EXPRESSION 1.0 16V 5PTS 15/02/2016 RCHN00328 37500,000
Teria mas uma chave em VEI_BONUS ?
EMPRESA
Nao deveria entrar na condicao ON dos joins !?
Veja se istoajuda.