• As Gail states.

    You may get some mileage from this:

    -- Extract this chunk of your query separately

    --------------------------------------------------------------------

    JOIN OSS_BENCHMARK_PRICE_REFERENCE PR

    ON L.DAILY_BENCHMARK_LOCAL_SEQ=PR.DAILY_BENCHMARK_LOCAL_SEQ

    JOIN RD_MARKET_PRICE MP

    ON MP.MARKET_PRICE_SEQ=PR.MARKET_PRICE_SEQ

    OR MP.MARKET_PRICE_SEQ=PR.FUEL_MARKET_PRICE_SEQ

    OR MP.MARKET_PRICE_SEQ=PR.GAS_MARKET_PRICE_SEQ

    LEFT JOIN OSS_MARKET_PRICE_DAILY FPD

    ON MP.MARKET_PRICE_SEQ=FPD.MARKET_PRICE_SEQ

    AND MP.PRICE_TYPE_CD ='FREIGHT'

    AND FPD.OPTIMISATION_JOB_SEQ= @JOB_ID

    AND CONVERT(VARCHAR(8), FPD.APPLICABLE_DT, 112)= CONVERT(VARCHAR(8), G.price_dt, 112)

    LEFT JOIN OSS_MARKET_PRICE_DAILY FOPD

    ON MP.MARKET_PRICE_SEQ=FOPD.MARKET_PRICE_SEQ

    AND MP.PRICE_TYPE_CD ='FUEL OIL'

    AND FOPD.OPTIMISATION_JOB_SEQ= @JOB_ID

    AND CONVERT(VARCHAR(8), FOPD.APPLICABLE_DT, 112)= CONVERT(VARCHAR(8), G.price_dt, 112)

    LEFT JOIN OSS_MARKET_PRICE_DAILY GOPD

    ON MP.MARKET_PRICE_SEQ=GOPD.MARKET_PRICE_SEQ

    AND MP.PRICE_TYPE_CD ='GAS OIL'

    AND GOPD.OPTIMISATION_JOB_SEQ = @JOB_ID

    AND CONVERT(VARCHAR(8), GOPD.APPLICABLE_DT, 112)= CONVERT(VARCHAR(8), G.price_dt, 112)

    -------------------------------------------------------------------

    -- something like this. Set it up either as a CTE, a derived table,

    -- or (probably faster) a #temporary table

    SELECT

    PR.DAILY_BENCHMARK_LOCAL_SEQ,

    APPLICABLE_DT = CONVERT(VARCHAR(8), FPD.APPLICABLE_DT, 112),

    FREIGHT_RATE = CASE WHEN MP.PRICE_TYPE_CD ='FREIGHT' THEN FPD.QUOTE_VAL ELSE 0 END,

    BUNKER_RATE = CASE WHEN MP.PRICE_TYPE_CD ='FUEL OIL' THEN FPD.QUOTE_VAL ELSE 0 END,

    DIESEL_RATE = CASE WHEN MP.PRICE_TYPE_CD ='GAS OIL' THEN FPD.QUOTE_VAL ELSE 0 END

    FROM OSS_BENCHMARK_PRICE_REFERENCE PR

    INNER JOIN RD_MARKET_PRICE MP

    ON MP.MARKET_PRICE_SEQ IN (PR.MARKET_PRICE_SEQ, PR.FUEL_MARKET_PRICE_SEQ, PR.GAS_MARKET_PRICE_SEQ)

    LEFT JOIN OSS_MARKET_PRICE_DAILY FPD

    ON MP.MARKET_PRICE_SEQ = FPD.MARKET_PRICE_SEQ

    --AND MP.PRICE_TYPE_CD ='FREIGHT'

    AND FPD.OPTIMISATION_JOB_SEQ = @JOB_ID

    --AND CONVERT(VARCHAR(8), FPD.APPLICABLE_DT, 112)= CONVERT(VARCHAR(8), G.price_dt, 112)

    GROUP BY

    PR.DAILY_BENCHMARK_LOCAL_SEQ,

    CONVERT(VARCHAR(8), FPD.APPLICABLE_DT, 112)

    -- note that functions in JOINs and the WHERE clause are likely to render the search non-SARGable

    “Write the query the simplest way. If through testing it becomes clear that the performance is inadequate, consider alternative query forms.” - Gail Shaw

    For fast, accurate and documented assistance in answering your questions, please read this article.
    Understanding and using APPLY, (I) and (II) Paul White
    Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden