Skip to content
Report · Sales

Sales by item class by month

Net sales and quantity by item class, month by month, for the last two years.

  • monthly
  • classes
  • product lines
Sample preview, fictional dataYour own figures appear after import.

01

About this report

Net sales by the class set on each item record, by month for the last 24 months. Net sales are invoices and cash sales less credit memos, before tax, in base currency. Items with no class are grouped as (no class).

Group by Quarter or Year for longer comparisons. On a dashboard, a line chart with Class as the series shows how the mix changes.

02

Sample preview

Fictional figures in the shape you will see. Yours come from your account.

MonthClassQuantityNet sales
2026-09Services1,280243,100
2026-09Subscriptions2296,000
2026-09Hardware4138,950.40
2026-09(no class)62,210
2026-08Services1,395261,875

03

The SuiteQL

This is the query each report runs. Read it, copy it, or change it after import.

Sales by item class by month
SELECT TO_CHAR(t.trandate, 'YYYY-MM') AS period,
       NVL(BUILTIN.DF(i.class), '(no class)') AS item_class,
       SUM(-tl.quantity) AS quantity,
       SUM(-tl.foreignamount * t.exchangerate) AS sales
  FROM transaction t
  JOIN transactionline tl ON tl.transaction = t.id
  JOIN item i ON i.id = tl.item
 WHERE t.type IN ('CustInvc', 'CashSale', 'CustCred')
   AND t.posting = 'T'
   AND tl.mainline = 'F'
   AND tl.taxline = 'F'
   AND NVL(tl.iscogs, 'F') = 'F'
   AND tl.itemtype NOT IN ('TaxGroup', 'TaxItem', 'Subtotal', 'Description', 'EndGroup')
   AND t.trandate >= ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -23)
 GROUP BY TO_CHAR(t.trandate, 'YYYY-MM'), NVL(BUILTIN.DF(i.class), '(no class)')
 ORDER BY period DESC, sales DESC

ReportSales

Sales by item class by month

Screenshot of the Sales by item class by month report in HiScale Advanced Reports, filled with fictional sample data
Sample preview, fictional dataOpen image full size (opens in a new tab)