title: strategy for reporting with persistence ignorance
body: <p>I need advice on a reporting strategy.  We currently use Crystal Reports, but that may be irrelevant here... we could use something different if technology choice was the issue.</p>
  
  <p>I'm building an application that will handle fairly complicated invoicing but at the end of the day, they all <code>GetTotals</code>.  Persistence ignorance is going well, I'm testing in isolation and can store everything later.</p>
  
  <p>But now say I want to report on invoice totals.  Generating those totals is part of the application, not the database.  I don't want to duplicate that logic in the database.  In the past, I'd build the invoicing logic into the database from the get-go but that forces me into a fairly brittle strategy application-wise.</p>
  
  <p>How do I resolve this conflict?</p>
  
  <p>Thank you for the advice,</p>
  
  <p>-Ethan Nelson</p>