Printar Report

Boa Noite Pessoal,

Eu tenho que construir um método que ele printe um relatório do total de vendar em um período baseado na query em SQL que eu montei. A query seria essa:

select c.name, b.name, SUM(a.value) from sale as a inner join credit_card as b on a.id = b.id inner join
store as c on a.id = c.id where a.date between data1 and data2 group by c.name, b.name, b.id;

O método tem como parametro initialDate e endDate só que estou em dúvida se eu coloco essa query dentro do método pra ele fazer a consulta no banco ou teria que fazer algo diferente?Pois não to conseguindo ver uma maneira pra fazer com que o print saia mais ou menos assim:

total sales between 01/01/2017 and 31/01/2017
Loja 01;visa;155,00
Loja 01;master;200,00

Segue o código do método:

public void printReport(Date initialDate, Date endDate) {

  List<Sale> sales = getSales(initialDate, endDate);
  try {
      System.out.println(id);
      PreparedStatement stmt = connection.prepareStatement("select c.name, b.name, SUM(a.value) from sale as a inner join credit_card as b on a.id = b.id inner join
      store as c on a.id = c.id where a.date between data1 and data2  group by c.name, b.name, b.id");
      stmt.setLong(1, id);
      ResultSet rs = stmt.executeQuery();
      Sale s = new Sale();
      while (rs.next()) {
          s.setId(rs.getLong("id"));
          s.setName(rs.getString("name"));
          s.setValue(rs.getString("value"));
          s.setCreditCardId(rs.getString("creditCardId"));
          c.setStoreId(rs.getString("storeId"));
          Calendar data = Calendar.getInstance();
          data.setTime(rs.getDate("date"));
          c.setDate(data);
      }
  } catch (SQLException ex) {
      throw new DAOException(ex);
  }

}

}