Total the extracted amounts.

    data = Dataset@Table[Association[
         "Sector" -> RandomChoice[{"Energy", "Env"}],
         "Supplier" -> StringTemplate["N``"]@RandomInteger[5],
         "Stage" -> 10*RandomInteger[5],
         "Amount" -> 1000*RandomInteger[200]
         ], 100];
    Total /@ GroupBy[data, #Supplier &, Map[#["Amount"] &]]

*Edited in response to change in question:*

Your comment says you only want to total over a Stage1 and Stage 2, so select for these.

    sel = Select["Stage1" == #Stage || "Stage2" == #Stage &]
    grp = GroupBy["Supplier"]
    data[sel][grp, Total, "Amount"]