Dude, learn how to format your code so we can read it. Beyond that, here is your code formatted. Note the comments:
SELECT Q.DTNUMEXE
,Q.DTMOIEXE
,Q.DTANNQIT
,Q.DTMOIQIT
,Q.DTCODBRC
,Q.DTSERQIT
,Q.DTPLCQTC
,Q.DTCATPOL
,Q.DTCODRSQ
,Q.DTNATRSQ
,Q.DTCODPRO
,Q.DTTYPQIT
,Q.DTLIBTYP
,Q.DTCODETA
,Q.DTLIBETA
,Q.DTCODAGC
,Q.DTNUMCLT
,Q.DTNATCLT
,Q.DTJJDVAL
,Q.DTMMDVAL
,Q.DTAADVAL
,Q.DTJJFVAL
,Q.DTMMFVAL
,Q.DTAAFVAL
,Q.DTCODART
,Q.DTCODGRN
,Q.DTPRMNET
,Q.DTMNTACC
,Q.DTJJEMIS
,Q.DTMMEMIS
,Q.DTAAEMIS
,CASE WHEN Q.DTNUMCLT >= 50000 AND Q.DTNUMCLT <= 100000 THEN 'OUI' ELSE 'NON' END AS DTCLTIMP
,CASE UPPER(Q.DTPLCEXO) WHEN 'O' THEN 'OUI' WHEN 'N' THEN 'NON' END AS DTEXOTAX
,Q.DTMNTCOM
,(
SELECT G.VGFRNNBP
FROM AUTOPRD.AUVCLGRPP0 AS G
WHERE (G.VGNUMPLC = Q.DTPLCQTC )
AND (G.VGCODGRN= Q.DTCODGRN)
AND (G.VGJJOCCU * 1000000 + G.VGMMOCCU * 100000000 + G.VGAAOCCU * 10000000000 + G.VGNUMAVT)
IN (
SELECT MAX(G.VGJJOCCU * 1000000 + G.VGMMOCCU * 100000000 + G.VGAAOCCU * 10000000000 + G.VGNUMAVT ) AS DATEOCC
FROM AUTOPRD.AUVCLGRPP0
WHERE (G.VGMMOCCU * 100000000 + G.VGAAOCCU * 10000000000 <= (Q.DTAADVAL * 10000 + Q.DTMMDVAL * 100 + Q.DTJJDVAL) * 1000000 )
AND (G.VGNUMPLC =Q.DTPLCQTC) AND (G.VGCODGRN= Q.DTCODGRN)
)
)
,(
SELECT G.VGCPTPTN
FROM AUTOPRD.AUVCLGRPP0 AS G
WHERE (G.VGNUMPLC = Q.DTPLCQTC )
AND (G.VGCODGRN= Q.DTCODGRN) AND (G.VGJJOCCU * 1000000 + G.VGMMOCCU * 100000000 + G.VGAAOCCU * 10000000000 + G.VGNUMAVT)
IN (
SELECT MAX(G.VGJJOCCU * 1000000 + G.VGMMOCCU * 100000000 + G.VGAAOCCU * 10000000000 + G.VGNUMAVT ) AS DATEOCC
FROM AUTOPRD.AUVCLGRPP0
WHERE (G.VGMMOCCU * 100000000 + G.VGAAOCCU * 10000000000 <= (Q.DTAADVAL * 10000 + Q.DTMMDVAL * 100 + Q.DTJJDVAL) * 1000000 )
AND (G.VGNUMPLC =Q.DTPLCQTC)
AND (G.VGCODGRN= Q.DTCODGRN)
)
)
FROM TRANSFERT.DTQTTNCPP1 AS Q
WHERE (Q.DTCODBRC = 1)
AND (Q.DTCODGRN>0)
AND (DTNUMEXE = 2020)