public with sharing class LexConsumableAccountSOQL {
  public static AggregateResult[] getAccountBySales(
    Datetime thisDatetime,
    Datetime nextDatetime
  ) {
    AggregateResult[] arList = new List<AggregateResult>(
      [
        SELECT
          Consumable_order__r.Order_ForHospital__c,
          Consumable_order__r.Order_ForHospital__r.name hospitalName,
          sum(Sale_amount__c) thisAmount
        FROM Consumable_Orderdetails__c
        WHERE
          CreatedDate >= :thisDatetime
          AND CreatedDate < :nextDatetime
          AND Consumable_order__r.Order_ForHospital__r.name != ''
        GROUP BY
          Consumable_order__r.Order_ForHospital__c,
          Consumable_order__r.Order_ForHospital__r.name
        ORDER BY sum(Sale_amount__c) DESC
        LIMIT 10
      ]
    );
    return arList;
  }

  public static AggregateResult[] getAccountTotalSales(
    Datetime thisDatetime,
    Datetime nextDatetime
  ) {
    AggregateResult[] saleAmountList = [
      SELECT sum(Sale_amount__c) saleAmount
      FROM Consumable_Orderdetails__c
      WHERE
        CreatedDate >= :thisDatetime
        AND CreatedDate < :nextDatetime
        AND Consumable_order__r.Order_ForHospital__r.name != ''
    ];
    return saleAmountList;
  }
}
