web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

No record found.

News and Announcements icon
Community site session details

Community site session details

Session Id :
Microsoft Dynamics RMS (Archived)

Quantity Sold/On Hand Report

(0) ShareShare
ReportReport
Posted on by 370
How do I pull a single report with the following criteria: 1) Supplier 2) Total quantity of items sold 3) Total quantity of items on hand 4) Specific Date range The detailed sales report provides the information but it displays a line item for each item sold, so if you sold 6 of item ABC there would be 6 individual line items for each time it sold, I need just a total for the subject item(s) sold. Any help appreciated.

*This post is locked for comments

I have the same question (0)
  • Community Member Profile Picture
    on at

    Copy this info into Notepad and save as .QRP in the Reports folder.

    //--- Report Summary --- //

    Begin ReportSummary

      ReportType = reporttypeSales

      ReportTitle = "Summary Sales Report"

      PageOrientation = pageorientationPortrait

      OutLineMode = True

      Groups = 1

      GroupDescription = ""

      DisplayLogo = True

      LogoFileName = "MyLogo.bmp"

      ProcedureCall = ""

      PreQuery1 = "IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'ViewOnOrder') DROP VIEW ViewOnOrder"

      PreQuery2 = <BEGIN>

        CREATE VIEW ViewOnOrder AS

            SELECT itemid, sum(quantityordered - quantityreceivedtodate) AS OnOrder

            FROM PurchaseOrderEntry

            LEFT JOIN PurchaseOrder on PurchaseOrderEntry.purchaseorderid = PurchaseOrder.id

            WHERE potype < 2

            GROUP BY itemid

        <END>

      TablesQueried = <BEGIN>

         FROM     TransactionEntry INNER JOIN [Transaction] WITH(NOLOCK) ON TransactionEntry.TransactionNumber = [Transaction].TransactionNumber

            LEFT JOIN   Item WITH(NOLOCK) ON TransactionEntry.ItemID = Item.ID

            LEFT JOIN   Department WITH(NOLOCK) ON Item.DepartmentID = Department.ID

            LEFT JOIN   Category WITH(NOLOCK) ON Item.CategoryID = Category.ID

            LEFT JOIN   Supplier WITH(NOLOCK) ON Item.SupplierID = Supplier.ID

    LEFT JOIN   ViewOnOrder WITH(NOLOCK) ON Item.ID = ViewOnOrder.ItemID

    <END>

      SelCriteria = ""

      GroupBy = "Department.Name, Category.Name, Item.ItemLookupCode, Item.Description, Item.Price, Item.Quantity, Supplier.SupplierName, Item.Cost, ViewOnOrder.OnOrder, Item.SubDescription1, Item.SubDescription2, Item.SubDescription3, Item.BinLocation, Item.PriceA, Item.PriceB, Item.PriceC, Item.MSRP, Item.LastSold, Item.SalePrice, Item.SaleStartDate, Item.SaleEndDate"

      SortOrder = ""

    End ReportSummary

    //--- Title Rows ---//

    Begin TitleRow

      Text = "<Store Name>"

      Font = "Arial"

      FontBold = True

      FontSize = 16

      Color = "Blue"

    End TitleRow

    Begin TitleRow

      Text = "<Report Title>"

      Font = "Arial"

      FontBold = True

      FontSize = 12

      Color = "Black"

    End TitleRow

    Begin TitleRow

      Text = "Generated On <Report Date>"

      Font = "Arial"

      FontBold = True

      FontSize = 10

      Color = "Black"

    End TitleRow

    //--- Filters ---//

    Begin Filter

      FieldName = "[Transaction].Time"

      FilterOp = reportfilteropBetween

      FilterLoLim = "<Today>"

      FilterHilim = "<Today>"

    End Filter

    //--- Columns ---//

    Begin Column

      FieldName = "Department.Name"

      DrillDownFieldName = "Department.Name"

      DrillDownReportName = ""

      Title = "Department"

      VBDataType = vbString

      Formula = ""

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 2205

      GroupMethod = groupmethodNone

      ColFormat = ""

      ColAlignment = flexAlignLeftCenter

    End Column

    Begin Column

      FieldName = "Category.Name"

      DrillDownFieldName = "Category.Name"

      DrillDownReportName = ""

      Title = "Category"

      VBDataType = vbString

      Formula = ""

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1515

      GroupMethod = groupmethodNone

      ColFormat = ""

      ColAlignment = flexAlignLeftCenter

    End Column

    Begin Column

      FieldName = "Supplier.SupplierName"

      DrillDownFieldName = "Supplier.SupplierName"

      DrillDownReportName = ""

      Title = "Supplier"

      VBDataType = vbString

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1725

      GroupMethod = groupmethodNone

      ColFormat = ""

      ColAlignment = flexAlignLeftCenter

    End Column

    Begin Column

      FieldName = "Item.ItemLookupCode"

      DrillDownFieldName = "Item.ItemLookupCode"

      DrillDownReportName = ""

      Title = "Item"

      VBDataType = vbString

      Formula = ""

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1380

      GroupMethod = groupmethodNone

      ColFormat = ""

      ColAlignment = flexAlignLeftCenter

    End Column

    Begin Column

      FieldName = "Item.Description"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Description"

      VBDataType = vbString

      Formula = ""

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 2115

      GroupMethod = groupmethodNone

      ColFormat = ""

      ColAlignment = flexAlignLeftCenter

    End Column

    Begin Column

      FieldName = "Item.SubDescription1"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "!CaptionItemSubDescription1"

      VBDataType = vbString

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1600

      GroupMethod = groupmethodNone

      ColFormat = ""

      ColAlignment = flexAlignLeftCenter

    End Column

    Begin Column

      FieldName = "Item.SubDescription2"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "!CaptionItemSubDescription2"

      VBDataType = vbString

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1600

      GroupMethod = groupmethodNone

      ColFormat = ""

      ColAlignment = flexAlignLeftCenter

    End Column

    Begin Column

      FieldName = "Item.SubDescription3"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "!CaptionItemSubDescription3"

      VBDataType = vbString

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1600

      GroupMethod = groupmethodNone

      ColFormat = ""

      ColAlignment = flexAlignLeftCenter

    End Column

    Begin Column

      FieldName = "Item.Quantity"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "On Hand"

      VBDataType = vbDouble

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 810

      GroupMethod = groupmethodSum

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "ViewOnOrder.OnOrder"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "On Order"

      VBDataType = vbDouble

      Formula = "ISNULL(ViewOnOrder.OnOrder, 0)"

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 950

      GroupMethod = groupmethodSum

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "Item.Price"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Price"

      VBDataType = vbCurrency

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 720

      GroupMethod = groupmethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "Item.PriceA"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Price A"

      VBDataType = vbCurrency

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 750

      GroupMethod = groupmethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "Item.PriceB"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Price B"

      VBDataType = vbCurrency

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 750

      GroupMethod = groupmethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "Item.PriceC"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Price C"

      VBDataType = vbCurrency

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 750

      GroupMethod = groupmethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "Item.Cost"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Cost"

      VBDataType = vbCurrency

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 750

      GroupMethod = groupmethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "TransactionEntry.Quantity"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Qty Sold"

      VBDataType = vbDouble

      Formula = "SUM(TransactionEntry.Quantity)"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 810

      GroupMethod = groupmethodSum

      ColFormat = "##########"

    End Column

    Begin Column

      FieldName = "Total"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Total Sales"

      VBDataType = vbCurrency

      Formula = "SUM(TransactionEntry.Price * TransactionEntry.Quantity)"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1275

      GroupMethod = groupmethodSum

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "TransactionEntry.Cost"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Total Cost"

      VBDataType = vbCurrency

      Formula = "SUM(TransactionEntry.Cost * TransactionEntry.Quantity)"

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1000

      GroupMethod = groupmethodSum

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "Profit"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Profit"

      VBDataType = vbCurrency

      Formula = "SUM((TransactionEntry.Price - TransactionEntry.Cost) * TransactionEntry.Quantity)"

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 950

      GroupMethod = groupmethodSum

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "ProfitMargin"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Profit Margin"

      VBDataType = vbDouble

      Formula = "CASE WHEN SUM(TransactionEntry.Price * TransactionEntry.Quantity) <> 0 THEN SUM((TransactionEntry.Price - TransactionEntry.Cost) * TransactionEntry.Quantity)/SUM(TransactionEntry.Price * TransactionEntry.Quantity) ELSE 0 END"

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1300

      GroupMethod = groupmethodNone

      ColFormat = "0.00%"

    End Column

    Begin Column

      FieldName = "TotalDiscount"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Discount"

      VBDataType = vbCurrency

      Formula = "SUM((TransactionEntry.FullPrice - TransactionEntry.Price) * TransactionEntry.Quantity)"

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1220

      GroupMethod = groupmethodsum

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "Item.BinLocation"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Bin Location"

      VBDataType = vbString

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1440

      GroupMethod = groupmethodNone

      ColFormat = ""

      ColAlignment = flexAlignLeftCenter

    End Column

    Begin Column

      FieldName = "Item.MSRP"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "MSRP"

      VBDataType = vbCurrency

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 750

      GroupMethod = groupmethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "Item.SalePrice"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Sale Price"

      VBDataType = vbCurrency

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1000

      GroupMethod = groupmethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "Item.SaleStartDate"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Sale Starts"

      VBDataType = vbDate

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1020

      GroupMethod = groupmethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "Item.SaleEndDate"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Sale Ends"

      VBDataType = vbDate

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 930

      GroupMethod = groupmethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "Item.LastSold"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Last Sold"

      VBDataType = vbDate

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1000

      GroupMethod = groupmethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "[Transaction].Time"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Date Sold"

      VBDataType = vbDate

      Formula = ""

      ColHidden = True

      ColNotDisplayable = True

      FilterDisabled = False

      ColWidth = 900

      GroupMethod = groupmethodNone

      ColFormat = ""

    End Column

  • extel Profile Picture
    370 on at

    Thanks for the reply.  Unfortunately I'm not familiar with application of the suggested method.  

  • Community Member Profile Picture
    on at

    Take the above lines and copy them.  Open Notepad and paste them.  Save the file as Custom - Summary Sales.QRP in the RMS Reports folder which is typically installed at C:\Program Files (x86)\Microsoft Retail Management System\Store Operations\Reports.  Close the Store Manager and reopen.  You will find the custom report under the Reports Menu - Custom.

  • extel Profile Picture
    370 on at

    Thank you.  I believe this solves the problem.  

  • extel Profile Picture
    370 on at

    The report appears to give the information needed; however, it does not include the "extended description" column.  How do I get the report to include the "Extended Description" column which is needed for my purposes?  Any feedback appreciated.

  • Community Member Profile Picture
    on at

    SammySue you are a true legend!  I was just trying to work this out for myself when I stumbled across your post.

    Thank you very much, saved me a headache.

  • Lucie Profile Picture
    5 on at

    Genius Sammy!

    Thank you very much, was looking for this for a while..

    Now, I am personally looking to go further..

    Do you know if it would be possible to add columns to the generated report so that I can see the Qty sold per year or month?

    So I would still have only 1 line per item like your report; but a column for Qty sold (say in) 2012, Qty Sold 2013, Qty sold 2014, etc...

    Or is does it require playing with more than the QRP files..?

    That would also fix my issue; whereas I would want the whole <Supplier> items to appears on the report even if Qty sold for <Date Sold> is equal to 0.

    Really, a combination of your report & detailed sales...

    Thank you!

  • Suggested answer
    Community Member Profile Picture
    on at

    How about something like this?  I got this a long time ago from someone on the community - so - who ever first wrote this - much thanks.

    //--- Report Summary --- //

    Begin ReportSummary

      ReportType = reporttypeSales

      ReportTitle = "12 Month Unit Sales"

      PageOrientation = pageorientationLandscape

      WordWrap = False

      ShowDateTimePicker = False

      OutLineMode = True

      Groups = 1

      GroupDescription = ""

      DisplayLogo = True

      LogoFileName = "MyLogo.bmp"

      ProcedureCall = ""

      PreQuery1 = "IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'ViewItemMovementHistory') DROP VIEW ViewItemMovementHistory"

      PreQuery2 = <BEGIN>

     CREATE VIEW ViewItemMovementHistory AS

      Select Item.ItemLookupCode, ItemClass.ItemLookupCode as ClassILC, ItemClass.Description as ClassDesc,

    Item.Description, Item.Quantity, Item.QuantityCommitted, Item.ReorderPoint, Item.RestockLevel,

    Item.subDescription1, Item.subDescription2, Item.subDescription3, Item.Inactive,

    (SELECT SUM(PurchaseOrderEntry.QuantityOrdered-PurchaseOrderEntry.QuantityReceivedToDate)

    FROM PurchaseOrderEntry WHERE PurchaseOrderEntry.ItemID = Item.ID) AS OnOrder,

    [Transaction].Time as Date, Department.ID as Department, Category.ID as Category, Supplier.ID as Supplier,

    SupplierList.ReorderNumber,

    CASE WHEN ((cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 AND (cast(DatePart(mm,GetDate()) as int) - cast(DatePart(mm,[Transaction].Time) as int)) < 0) OR (cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) AND (cast(DatePart(mm,GetDate()) as int) - cast(DatePart(mm,[Transaction].Time)as int)) > -1) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END AS MAT,

    CASE WHEN ((cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 AND (cast(DatePart(mm,GetDate()) as int) - cast(DatePart(mm,[Transaction].Time) as int)) < 0) OR (cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) AND (cast(DatePart(mm,GetDate()) as int) - cast(DatePart(mm,[Transaction].Time)as int)) > -1) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END AS MATSales,

    CASE WHEN ((cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 AND (cast(DatePart(mm,GetDate()) as int) - cast(DatePart(mm,[Transaction].Time) as int)) < 0) OR (cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) AND (cast(DatePart(mm,GetDate()) as int) - cast(DatePart(mm,[Transaction].Time)as int)) > -1) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END AS MATCost,

    CASE WHEN (cast(DatePart(Mm,[Transaction].Time) as int) - cast(DatePart(Mm,GetDate()) as int) <= 0) AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as YTD,

    CASE WHEN (cast(DatePart(Mm,[Transaction].Time) as int) - cast(DatePart(Mm,GetDate()) as int) <= 0) AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as TotalSales,

    CASE WHEN (cast(DatePart(Mm,[Transaction].Time) as int) - cast(DatePart(Mm,GetDate()) as int) <= 0) AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as TotalCost,

    CASE WHEN (cast(DatePart(Mm,[Transaction].Time) as int) - cast(DatePart(Mm,GetDate()) as int) <= 0) AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as LYTD,

    CASE WHEN (cast(DatePart(Mm,[Transaction].Time) as int) - cast(DatePart(Mm,GetDate()) as int) <= 0) AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as LYTotalSales,

    CASE WHEN (cast(DatePart(Mm,[Transaction].Time) as int) - cast(DatePart(Mm,GetDate()) as int) <= 0) AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as LYTotalCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) = cast(DatePart(Mm,GetDate()) as int) AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) AND cast(DatePart(dd,GetDate()) as int) >= cast(DatePart(dd,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as MTD,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) = cast(DatePart(Mm,GetDate()) as int) AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) AND cast(DatePart(dd,GetDate()) as int) >= cast(DatePart(dd,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as MonthSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) = cast(DatePart(Mm,GetDate()) as int) AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) AND cast(DatePart(dd,GetDate()) as int) >= cast(DatePart(dd,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as MonthCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) = cast(DatePart(Mm,GetDate()) as int) AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as LYM,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) = cast(DatePart(Mm,GetDate()) as int) AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as LYMonthSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) = cast(DatePart(Mm,GetDate()) as int) AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as LYMonthCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '1' AND '1' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as Jan,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '1' AND '1' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as LYJan,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '1' AND '1' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as JanSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '1' AND '1' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as JanCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '1' AND '1' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as LYJanSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '1' AND '1' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as LYJanCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '2' AND '2' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as Feb,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '2' AND '2' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as LYFeb,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '2' AND '2' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as FebSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '2' AND '2' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as FebCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '2' AND '2' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as LYFebSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '2' AND '2' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as LYFebCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '3' AND '3' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as Mar,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '3' AND '3' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as LYMar,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '3' AND '3' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as MarSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '3' AND '3' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as MarCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '3' AND '3' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as LYMarSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '3' AND '3' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as LYMarCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '4' AND '4' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as Apr,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '4' AND '4' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as LYApr,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '4' AND '4' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as AprSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '4' AND '4' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as AprCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '4' AND '4' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as LYAprSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '4' AND '4' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as LYAprCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '5' AND '5' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as May,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '5' AND '5' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as LYMay,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '5' AND '5' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as MaySales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '5' AND '5' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as MayCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '5' AND '5' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as LYMaySales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '5' AND '5' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as LYMayCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '6' AND '6' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as Jun,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '6' AND '6' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as LYJun,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '6' AND '6' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as JunSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '6' AND '6' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as JunCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '6' AND '6' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as LYJunSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '6' AND '6' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as LYJunCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '7' AND '7' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as Jul,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '7' AND '7' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as LYJul,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '7' AND '7' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as JulSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '7' AND '7' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as JulCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '7' AND '7' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as LYJulSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '7' AND '7' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as LYJulCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '8' AND '8' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as Aug,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '8' AND '8' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as LYAug,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '8' AND '8' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as AugSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '8' AND '8' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as AugCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '8' AND '8' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as LYAugSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '8' AND '8' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as LYAugCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '9' AND '9' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as Sep,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '9' AND '9' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as LYSep,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '9' AND '9' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as SepSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '9' AND '9' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as SepCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '9' AND '9' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as LYSepSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '9' AND '9' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as LYSepCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '10' AND '10' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as Oct,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '10' AND '10' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as LYOct,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '10' AND '10' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as OctSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '10' AND '10' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as OctCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '10' AND '10' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as LYOctSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '10' AND '10' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as LYOctCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '11' AND '11' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as Nov,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '11' AND '11' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as LYNov,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '11' AND '11' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as NovSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '11' AND '11' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as NovCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '11' AND '11' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as LYNovSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '11' AND '11' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as LYNovCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '12' AND '12' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as Dec,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '12' AND '12' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY) ELSE 0 END as LYDec,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '12' AND '12' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as DecSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '12' AND '12' AND cast(DatePart(yy,GetDate()) as int) = cast(DatePart(yy,[Transaction].Time)as int) THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as DecCost,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '12' AND '12' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Price) ELSE 0 END as LYDecSales,

    CASE WHEN cast(DatePart(Mm,[Transaction].Time) as int) BETWEEN '12' AND '12' AND (cast(DatePart(yy,GetDate()) as int) - cast(DatePart(yy,[Transaction].Time)as int)) = 1 THEN SUM(TRANSACTIONENTRY.QUANTITY * TransactionEntry.Cost) ELSE 0 END as LYDecCost

     FROM

    [transaction]

    LEFT JOIN TRANSACTIONENTRY ON [TRANSACTION].TRANSACTIONNUMBER = TRANSACTIONENTRY.TRANSACTIONNUMBER

    LEFT JOIN ITEM ON TRANSACTIONENTRY.ITEMID = ITEM.ID

    LEFT JOIN DEPARTMENT ON ITEM.DEPARTMENTID = DEPARTMENT.ID

    LEFT JOIN CATEGORY ON ITEM.CATEGORYID = CATEGORY.ID

    LEFT JOIN SUPPLIER ON ITEM.SUPPLIERID = SUPPLIER.ID

    LEFT JOIN SUPPLIERLIST ON SUPPLIERLIST.SUPPLIERID = SUPPLIER.ID AND SUPPLIERLIST.ITEMID = ITEM.ID

    LEFT JOIN ITEMCLASSCOMPONENT ON ITEM.ID = ITEMCLASSCOMPONENT.ITEMID

    LEFT JOIN ITEMCLASS ON ITEMCLASSCOMPONENT.ITEMCLASSID = ITEMCLASS.ID

     GROUP BY

    Item.ID, Item.ItemLookupCode, Item.Description, [Transaction].Time, Department.ID, Category.ID,

    Supplier.ID, SupplierList.ReorderNumber, Item.Quantity, Item.QuantityCommitted, ItemClass.ItemLookupcode,

    ItemClass.Description, Item.ReorderPoint, Item.RestockLevel, Item.subDescription1, Item.subDescription2,

    Item.subDescription3, Item.Inactive

    <END>

      TablesQueried = "FROM ViewItemMovementHistory LEFT JOIN Department ON ViewItemMovementHistory.Department = Department.ID LEFT JOIN Category ON ViewItemMovementHistory.Category = Category.ID LEFT JOIN Supplier ON ViewItemMovementHistory.Supplier = Supplier.ID"

      SelCriteria = ""

      GroupBy = "ViewItemMovementHistory.ItemLookupCode, ViewItemMovementHistory.Description, Department.Name, Category.Name, Supplier.SupplierName, ViewItemMovementHistory.ReorderNumber, ViewItemMovementHistory.Quantity, ViewItemMovementHistory.Quantitycommitted, ViewItemMovementHistory.OnOrder, ViewItemMovementHistory.ClassILC, ViewItemMovementHistory.ClassDesc, ViewItemMovementHistory.ReorderPoint, ViewItemMovementHistory.RestockLevel, ViewItemMovementHistory.subDescription1, ViewItemMovementHistory.subDescription2, ViewItemMovementHistory.subDescription3, ViewItemMovementHistory.Inactive"

      SortOrder = ""

    End ReportSummary

    //--- Title Rows ---//

    Begin TitleRow

      Text = "<Store Name>"

      Font = "Arial"

      FontBold = True

      FontSize = 16

      Color = "Blue"

    End TitleRow

    Begin TitleRow

      Text = "<Report Title>"

      Font = "Arial"

      FontBold = True

      FontSize = 12

      Color = "Black"

    End TitleRow

    Begin TitleRow

      Text = "Generated On <Report Date>"

      Font = "Arial"

      FontBold = True

      FontSize = 10

      Color = "Black"

    End TitleRow

    //--- Filters ---//

    Begin Filter

      FieldName = "ViewItemMovementHistory.Date"

      FilterOp = reportfilteropBetween

      FilterLoLim = "<YearStart>"

      FilterHilim = "<Today>"

      FilterConnector = reportfilterbooleanconAND

    End Filter

    //--- Columns ---//

    Begin Column

      FieldName = "Department.Name"

      DrillDownFieldName = "Department.Name"

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Department"

      VBDataType = vbString

      Formula = ""

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1395

      GroupMethod = GroupMethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "ViewItemMovementHistory.ItemLookupCode"

      DrillDownFieldName = "Item.ItemLookupCode"

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Item Lookup Code"

      VBDataType = vbString

      Formula = ""

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1395

      GroupMethod = GroupMethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "ILC"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Class ILC/Description"

      VBDataType = vbString

      Formula = "ViewItemMovementHistory.ClassILC + '/' + ViewItemMovementHistory.ClassDesc"

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 2000

      GroupMethod = GroupMethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "ViewItemMovementHistory.Description"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Item Description"

      VBDataType = vbString

      Formula = ""

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 2550

      GroupMethod = GroupMethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "ViewItemMovementHistory.ClassDesc"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Class Description"

      VBDataType = vbString

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 2550

      GroupMethod = GroupMethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "ViewItemMovementHistory.subDescription1"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "!CaptionItemSubDescription1"

      VBDataType = vbString

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1000

      GroupMethod = groupmethodNone

      ColFormat = ""

      ColAlignment = flexAlignLeftCenter

    End Column

    Begin Column

      FieldName = "ViewItemMovementHistory.subDescription2"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "!CaptionItemSubDescription2"

      VBDataType = vbString

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1000

      GroupMethod = groupmethodNone

      ColFormat = ""

      ColAlignment = flexAlignLeftCenter

    End Column

    Begin Column

      FieldName = "ViewItemMovementHistory.subDescription3"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "!CaptionItemSubDescription3"

      VBDataType = vbString

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1000

      GroupMethod = groupmethodNone

      ColFormat = ""

      ColAlignment = flexAlignLeftCenter

    End Column

    Begin Column

      FieldName = "ViewItemMovementHistory.ReorderNumber"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Reorder #"

      VBDataType = vbString

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1000

      GroupMethod = groupmethodNone

      ColFormat = ""

      ColAlignment = flexAlignLeftCenter

    End Column

    Begin Column

      FieldName = "ViewItemMovementHistory.Inactive"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "InActive"

      VBDataType = vbBoolean

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 900

      GroupMethod = groupmethodNone

      ColFormat = ""

      ColAlignment = flexAlignCenterCenter

    End Column

    Begin Column

      FieldName = "Avail"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Avail"

      VBDataType = vbLong

      Formula = "ViewItemMovementHistory.Quantity - ViewItemMovementHistory.QuantityCommitted"

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 615

      GroupMethod = GroupMethodSum

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "OnOrder"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "On Order"

      VBDataType = vbLong

      Formula = "CASE WHEN ViewItemMovementHistory.OnOrder > 0 THEN ViewItemMovementHistory.OnOrder ELSE 0 END"

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 800

      GroupMethod = GroupMethodSum

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "Category.Name"

      DrillDownFieldName = "Category.Name"

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Category"

      VBDataType = vbString

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1395

      GroupMethod = GroupMethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "Supplier.SupplierName"

      DrillDownFieldName = "Supplier.SupplierName"

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Supplier"

      VBDataType = vbString

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 1395

      GroupMethod = GroupMethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "ViewItemMovementHistory.ReorderPoint"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "ReOrder Pt"

      VBDataType = vblong

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 465

      GroupMethod = groupmethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "ViewItemMovementHistory.RestockLevel"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      Title = "Restock Lvl"

      VBDataType = vblong

      Formula = ""

      ColHidden = True

      ColNotDisplayable = False

      FilterDisabled = False

      ColWidth = 465

      GroupMethod = groupmethodNone

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "qty"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Jan"

      VBDataType = vbDouble

      Formula = "CASE WHEN SUM(ViewItemMovementHistory.Jan) <> 0 THEN SUM(ViewItemMovementHistory.Jan) ELSE SUM(ViewItemMovementHistory.LYJan) END"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = True

      ColWidth = 465

      GroupMethod = GroupMethodSum

      ColFormat = "###"

    End Column

    Begin Column

      FieldName = "qty"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Feb"

      VBDataType = vbDouble

      Formula = "CASE WHEN SUM(ViewItemMovementHistory.Feb) <> 0 THEN SUM(ViewItemMovementHistory.Feb) ELSE SUM(ViewItemMovementHistory.LYFeb) END"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = True

      ColWidth = 465

      GroupMethod = GroupMethodSum

      ColFormat = "###"

    End Column

    Begin Column

      FieldName = "qty"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Mar"

      VBDataType = vbDouble

      Formula = "CASE WHEN SUM(ViewItemMovementHistory.Mar) <> 0 THEN SUM(ViewItemMovementHistory.Mar) ELSE SUM(ViewItemMovementHistory.LYMar) END"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = True

      ColWidth = 465

      GroupMethod = GroupMethodSum

      ColFormat = "###"

    End Column

    Begin Column

      FieldName = "qty"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Apr"

      VBDataType = vbDouble

      Formula = "CASE WHEN SUM(ViewItemMovementHistory.Apr) <> 0 THEN SUM(ViewItemMovementHistory.Apr) ELSE SUM(ViewItemMovementHistory.LYApr) END"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = True

      ColWidth = 465

      GroupMethod = GroupMethodSum

      ColFormat = "###"

    End Column

    Begin Column

      FieldName = "qty"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "May"

      VBDataType = vbDouble

      Formula = "CASE WHEN SUM(ViewItemMovementHistory.May) <> 0 THEN SUM(ViewItemMovementHistory.May) ELSE SUM(ViewItemMovementHistory.LYMay) END"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = True

      ColWidth = 465

      GroupMethod = GroupMethodSum

      ColFormat = "###"

    End Column

    Begin Column

      FieldName = "qty"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Jun"

      VBDataType = vbDouble

      Formula = "CASE WHEN SUM(ViewItemMovementHistory.Jun) <> 0 THEN SUM(ViewItemMovementHistory.Jun) ELSE SUM(ViewItemMovementHistory.LYJun) END"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = True

      ColWidth = 465

      GroupMethod = GroupMethodSum

      ColFormat = "###"

    End Column

    Begin Column

      FieldName = "qty"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Jul"

      VBDataType = vbDouble

      Formula = "CASE WHEN SUM(ViewItemMovementHistory.Jul) <> 0 THEN SUM(ViewItemMovementHistory.Jul) ELSE SUM(ViewItemMovementHistory.LYJul) END"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = True

      ColWidth = 465

      GroupMethod = GroupMethodSum

      ColFormat = "###"

    End Column

    Begin Column

      FieldName = "qty"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Aug"

      VBDataType = vbDouble

      Formula = "CASE WHEN SUM(ViewItemMovementHistory.Aug) <> 0 THEN SUM(ViewItemMovementHistory.Aug) ELSE SUM(ViewItemMovementHistory.LYAug) END"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = True

      ColWidth = 465

      GroupMethod = GroupMethodSum

      ColFormat = "###"

    End Column

    Begin Column

      FieldName = "qty2"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Sep"

      VBDataType = vbDouble

      Formula = "CASE WHEN SUM(ViewItemMovementHistory.Sep) <> 0 THEN SUM(ViewItemMovementHistory.Sep) ELSE SUM(ViewItemMovementHistory.LYSep) END"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = True

      ColWidth = 465

      GroupMethod = GroupMethodSum

      ColFormat = "###"

    End Column

    Begin Column

      FieldName = "qty2"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Oct"

      VBDataType = vbDouble

      Formula = "CASE WHEN SUM(ViewItemMovementHistory.Oct) <> 0 THEN SUM(ViewItemMovementHistory.Oct) ELSE SUM(ViewItemMovementHistory.LYOct) END"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = True

      ColWidth = 465

      GroupMethod = GroupMethodSum

      ColFormat = "###"

    End Column

    Begin Column

      FieldName = "qty2"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Nov"

      VBDataType = vbDouble

      Formula = "CASE WHEN SUM(ViewItemMovementHistory.Nov) <> 0 THEN SUM(ViewItemMovementHistory.Nov) ELSE SUM(ViewItemMovementHistory.LYNov) END"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = True

      ColWidth = 465

      GroupMethod = GroupMethodSum

      ColFormat = "###"

    End Column

    Begin Column

      FieldName = "qty2"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Dec"

      VBDataType = vbDouble

      Formula = "CASE WHEN SUM(ViewItemMovementHistory.Dec) <> 0 THEN SUM(ViewItemMovementHistory.Dec) ELSE SUM(ViewItemMovementHistory.LYDec) END"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = True

      ColWidth = 465

      GroupMethod = GroupMethodSum

      ColFormat = "###"

    End Column

    Begin Column

      FieldName = "qty"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Ttl"

      VBDataType = vbLong

      Formula = "SUM(ViewItemMovementHistory.MAT)"

      ColHidden = False

      ColNotDisplayable = False

      FilterDisabled = True

      ColWidth = 500

      GroupMethod = GroupMethodSum

      ColFormat = ""

    End Column

    Begin Column

      FieldName = "ViewItemMovementHistory.Date"

      DrillDownFieldName = ""

      DrillDownReportName = ""

      StoreIDFieldName = ""

      Title = "Date"

      VBDataType = vbDate

      Formula = ""

      ColHidden = True

      ColNotDisplayable = True

      FilterDisabled = False

      ColWidth = 5

      GroupMethod = GroupMethodNone

      ColFormat = ""

    End Column

  • RMS Wizard Profile Picture
    1,205 on at

    This appears to be a slightly edited copy of a 12 month report from this collection:

    store.digitalretailer.com/DRS-Custom-Reports-Templates-218

    There are a number useful reports while a few appear to be special requests.

  • nazza Profile Picture
    403 on at

    I copied this but my custom tab is greyed out. I have checked to make sure there is no security enabled. How do I make the custom tab enabled?

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Stars!

Congratulations to our 2025 Community Spotlights

Thanks to all of our 2025 Community Spotlight stars!

Leaderboard > 🔒一 Microsoft Dynamics RMS (Archived)

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans