How to investigate memory grant warnings?
This is usually resultant (though I believe other things can also cause it) from Cardinality Estimate issues. You should look at the Actual Execution Plan and see if you have any mis-estimates by comparing the Estimated Number of Rows total to the Actual Number of Rows. If you update your question with the Execution Plan (you can upload it to Paste The Plan and link it to your question) then we can give you better direction on the source of your excessive memory grant issue.