Productwise Monthly Sales by a Customer

Dear Experts,
Can anybody help me how to get the monthly sales qty like April, May ....etc according to Customer wise for a perticular Item.
Any help to modify the existing query
SELECT T1.[ItemName] 'Item Name', T0.[CardName] 'Customer Name', T2.[City], T3.[GroupName] 'Category', SUM(T0.[OutQty]) as 'Sale Qty',  SUM(T0.[InQty]) as 'Return Qty', SUM(T0.[OutQty])-SUM(T0.[InQty]) as 'Total Sale.Qty' FROM OINM T0  INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode INNER JOIN OCRG T3 ON T2.GroupCode = T3.GroupCode WHERE T0.[DocDate] >= [%0] and  T0.[DocDate] <= [%1] and T0.[ItemCode] = [%2] and T0.[TransType] in ('15', '16', '14') GROUP BY   T0.[CardName], T2.[City], T1.[ItemName], T3.[GroupName] order by T1.[ItemName], T3.[GroupName] desc
Regrds,
Srini

Hi,
you may test the Istvan query in your SQL server query --> demo datbase :
SELECT T1.ItemName 'Item Name', T0.CardName 'Customer Name',
T2.City, T3.GroupName 'Category', T0.DocDate,
datepart(m,T0.DocDate) Month,
SUM(T0.OutQty) as 'Sale Qty', SUM(T0.InQty) as 'Return Qty',
SUM(T0.OutQty)-SUM(T0.InQty) as 'Total Sale.Qty'
FROM OINM T0 INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode
INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode
INNER JOIN OCRG T3 ON T2.GroupCode = T3.GroupCode
WHERE
T0.DocDate >= '01/01/2009' and T0.DocDate <= '12/30/2009'
and
T0.ItemCode = 'A00001'
and T0.TransType in ('15', '16', '14')
GROUP BY T0.CardName, T2.City, T1.ItemName, T3.GroupName,datepart(m,T0.DocDate), T0.DocDate
order by T1.ItemName, T3.GroupName desc
JImM

Similar Messages

  • Time Series Line Chart - Monthly Sales - Make $0 or "No Sales" show up - not skipped

    Post Author: kevinday17
    CA Forum: Charts and Graphs
    I have been messing with my chart for a while and I guess I'll just ask for help since I can't figure it out.  All I am trying to do is chart out monthly sales dollars by customer.  Simple enough...I have it working except I want to be able to see a $0 plotted on my graph when there were no sales in a month.  Currently it just skips over that month and goes to the next where there is data (month after i.e next group summary field)).  I've tried all sorts of ways of grouping.  If I use the "group by date, monthly," on the "Order Date" field, I can't chose it as the "On Change of" under Advanced chart (single arrow is greyed out).   So I ended up making a huge formula to make my own groups of months.  My GH2 is the customer (and my chart), GH3 is my Grouping for month and year, and the detail is every single sales order.  My graph points are based on summary data; sum of all the sales orders for that customer for that month. 
    How do I tell Crystal Reports that if there were no sales in December, then tell me 0.  Don't just ignore it.
    Maybe there is an option to make the X Axis Fixed with points (month-year, in order).  It would be nice to have it uniform for every customer.  I would love to see every graph that prints out have 36 x-axis coordinates; one for every month of the last 36 months (jan-05, feb-05, mar-05......dec-07) regardless of whether or not the customer had sales or not.
    Thanks so much in advance. 
    Kevin

    Post Author: V361
    CA Forum: Charts and Graphs
    I have CR XI, I created a formula and used it to create the chart section
    if (isnull ()) then 0 else
    So if your AMNT is a null value it should put 0, else the AMNT

  • Report for Monthly Quantiy sold by Customer (SOLD TO PARTY)

    Hi Gurus
    I had asked this question many times but no answer I got from the forum , I want to create a report which should show quantity , uom sold to customer(sold to party) by each month and plant (werks).
    I want to display monthly sales in the report when plant and delivery date is selected ( month = jan,feb,mar,apr,may......) and each quantity must display under jan,feb,mar,apr respectively.
    Can anyone help me please , I am still struggling with this stuff.
    Thanks in advanced
    Regards
    PE

    Hi Aatish
    I have developed the report for monthlywise quantity sold to party
    but it is giving some trouble in the calculation where there is zero value it is taking the above value and displaying in the report but when I search individually with sold to party it is comming correctly
    can you check my source and comment on it please
    REPORT soldtoparty
    line-size  170
    line-count 65 no standard page heading.
    TABLES : kna1,VBRP,vbrk.
    DATA:BEGIN OF itab OCCURS 0,
    kunag like VBRK-KUNAG,
    name1  like kna1-name1,
    werks LIKE vbrp-werks,
    vbeln LIKE vbrp-vbeln,
    fkdat LIKE VBRK-FKDAT,
    vrkme LIKE vbrp-vrkme,
    fkimg LIKE vbrp-fkimg,
    total like vbrp-fkimg,
    END OF itab.
    DATA: BEGIN OF itab1 OCCURS 0,
    fkdat(2) TYPE c,
    kunag like VBRK-KUNAG,
    name1  like kna1-name1,
    werks LIKE vbrp-werks,
    vbeln LIKE vbrp-vbeln,
    vrkme LIKE vbrp-vrkme,
    fkimg LIKE vbrp-fkimg,
    total like vbrp-fkimg,
    END OF itab1.
    DATA : BEGIN OF itab2 OCCURS 0 ,
    fkdat like VBRK-FKDAT,
    fkimg like vbrp-fkimg,
    kunag like VBRK-KUNAG,
    name1  like kna1-name1,
    vrkme  like vbrp-vrkme,
    jan LIKE vbrp-fkimg,
    feb LIKE vbrp-fkimg,
    mar LIKE vbrp-fkimg,
    apr LIKE vbrp-fkimg,
    may LIKE vbrp-fkimg,
    jun LIKE vbrp-fkimg,
    jul LIKE vbrp-fkimg,
    aug LIKE vbrp-fkimg,
    sep LIKE vbrp-fkimg,
    oct LIKE vbrp-fkimg,
    nov LIKE vbrp-fkimg,
    dec LIKE vbrp-fkimg,
    TOTAL like vbrp-fkimg,
    END OF itab2.
    TOP-OF-PAGE.
      WRITE:/50(40) ' CUSTOMER SOLD BY QUANTITY' CENTERED   ,2 'Page', SY-PAGNO.
      WRITE:/50(40) '----
    ' CENTERED .
      FORMAT INTENSIFIED on.
      WRITE:/2 SY-DATUM COLOR 3, SY-UZEIT .
       "WRITE:/1 S903-SPMON ."p_yearf.
      ULINE.
      "CENTERED.
      skip.
      "FORMAT COLOR COL_HEADING.
      ULINE.
      FORMAT COLOR 3.
      WRITE:/1 SY-VLINE,
        0 'PARTY' ,10 SY-VLINE,
        11 'NAME' ,40 SY-VLINE,
        41 'JAN' centered  , 50 SY-VLINE,
        51 'FEB',60 SY-VLINE,
        61 'MAR',70 SY-VLINE,
        71 'APR',80 SY-VLINE,
        81 'MAY',90 SY-VLINE,
        91 'JUN',100 SY-VLINE,
        101 'JUL',110 SY-VLINE,
        111 'AUG',120 SY-VLINE,
        121 'SEP',130 SY-VLINE,
        131 'OCT',140 SY-VLINE,
        141 'NOV',150 SY-VLINE,
        151 'DEC',160 SY-VLINE,
        161'TOTAL',170 SY-VLINE.
      FORMAT COLOR 3 on.
      ULINE.
    END-OF-PAGE.
    data wa_itab1 like itab1.
    DATA : mm(2) TYPE c,
    value type p decimals 2,
    total type p decimals 2,
    sum1 type p decimals 1,sum2 type p decimals 1,sum3 type p decimals 1,
    sum4 type p decimals 1,sum5 type p decimals 1,sum6 type p decimals 1,
    sum7 type p decimals 1,sum8 type p decimals 1,sum9 type p decimals 1,
    sum10 type p decimals 1,sum11 type p decimals 1,sum12 type p decimals 1,
    sum13 type p decimals 1,
    t_s LIKE vbrp-fkimg.
    "g_total like vbrp-fkimg.
    SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME.
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    PARAMETERS: p_yearf TYPE SPMON,
    p_yeart type SPMON.
    SELECT-options:
                    p_kunag for VBRK-KUNAG , "no-extension no intervals,
                    s_werks for vbrp-werks no-extension no intervals obligatory,
                    s_vrkme for vbrp-vrkme no-extension no intervals obligatory.
    "p_matnr for vbrp-matnr no-extension no intervals,
    "p_augru for vbrp-augru_auft no-extension no intervals,
    "p_vbeln for vbrk-vbeln no-extension no intervals.
    RANGES : p_fkdat FOR sy-datum.
    RANGES: r_date FOR sy-datum.
    SELECTION-SCREEN END OF BLOCK blk1.
    SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.
    PARAMETERS: NRW RADIOBUTTON GROUP g1,
    MWD RADIOBUTTON GROUP g1,
    RWS RADIOBUTTON GROUP g1,
    EDU RADIOBUTTON GROUP g1,
    Standard RADIOBUTTON GROUP g1 default 'X'.
    SELECTION-SCREEN END OF BLOCK blk2.
    SELECTION-SCREEN END OF BLOCK blk.
    start-of-selection.
    break developer.
    case 'X'.
    when mwd.
    CONCATENATE p_yearf(4) p_yearf+4(2) '01' INTO p_fkdat-low.
    concatenate p_yeart(4) p_yeart+4(2) '01' into p_fkdat-high.
    p_fkdat-sign = 'I'.
    p_fkdat-option = 'BT'.
    CALL FUNCTION 'RE_LAST_DAY_OF_MONTH'
    EXPORTING
    i_datum = p_fkdat-high
    IMPORTING
    e_tt = p_fkdat-high+6(2).
    APPEND p_fkdat.
    *start-of-selection.
    SELECT *
    from VBRK
    INNER JOIN vbrp ON vbrk~vbeln = vbrp~vbeln
    INNER JOIN kna1 on vbrk~kunag = kna1~kunnr
    INTO corresponding fields of TABLE itab
    where
    vbrp~werks in s_werks and
    VBRK~KUNAG in p_kunag and
    VBRP~vrkme in s_vrkme and " 'M3' and
    VBRK~fkdat in p_fkdat order by KUNAG.
    *left outer join kna1
    **from S903 INNER JOIN kna1
    *ON VBRKKUNAG = kna1kunnr
    *INTO corresponding fields of TABLE itab
    *where
    *"vbrp~werks in s_werks and
    *VBRK~KUNAG in p_kunag and
    *VBRP~vrkme in s_vrkme and " 'M3' and
    *VBRK~fkdat in p_fkdat order by KUNAG.
    LOOP AT itab.
    mm = itab-fkdat+4(2). " Monthly for Ageing
    clear itab2.
    Read table itab2 with key KUNAG = itab-KUNAG.
    *IF SY-SUBRC EQ 0.                      " Record for Customer exists so modify existing record updating the quantities
         PERFORM itab2_rec USING 'M' mm.
      ELSE.                                  " Record for Cusotmer does not exist so Append a new record for Customer
         PERFORM itab2_rec USING 'A' mm.
      ENDIF.
    itab1-fkdat = itab-fkdat+4(2).
    *itab1-vrkme = itab-vrkme.
    itab1-KUNAG = itab-KUNAG.
    itab1-name1 = itab-name1.
    itab1-fkimg = itab-fkimg.
    APPEND itab1.
    clear itab1.
    ENDLOOP.
    SORT itab1 BY KUNAG fkdat name1.
    "delete adjacent duplicates from itab1.
    LOOP AT itab1.
    move itab1 to wa_itab1.
    AT NEW KUNAG.
    t_s = 0  .
    ENDAT.
    t_s = t_s + itab1-fkimg .
    AT END OF KUNAG.
    mm = itab1-fkdat.
    "break angle.
      IF SY-SUBRC = 0.                     " Record for Customer exists so modify existing record updating the quantities
    CASE mm.
                         " Record for customer does not exit so append a new record for customer
      WHEN '01'.
      itab2-jan = t_s  .
      itab2-KUNAG = wa_itab1-KUNAG.
      itab2-name1 = wa_itab1-name1.
      itab2-total = wa_itab1-total.
        sum2 = sum2 + itab2-jan.
      APPEND itab2.
      WHEN '02'.
      itab2-feb = t_s  .
      itab2-KUNAG = wa_itab1-KUNAG.
      itab2-name1 = wa_itab1-name1.
      itab2-total = wa_itab1-total.
        sum2 = sum2 + itab2-feb.
      APPEND itab2.
      WHEN '03'.
      itab2-mar = t_s .
      itab2-KUNAG = wa_itab1-KUNAG.
      itab2-name1 = wa_itab1-name1.
      itab2-total = wa_itab1-total.
        sum3 = sum3 + itab2-mar.
      APPEND itab2.
      WHEN '04'.
      itab2-apr = t_s  .
      itab2-KUNAG = wa_itab1-KUNAG.
      itab2-name1 = wa_itab1-name1.
      itab2-total = wa_itab1-total.
        sum4 = sum4 + itab2-apr.
      APPEND itab2.
      WHEN '05'.
      itab2-may = t_s.
      itab2-KUNAG = wa_itab1-KUNAG.
      itab2-name1 = wa_itab1-name1.
      itab2-total = wa_itab1-total.
       sum5 = sum5 + itab2-may.
      APPEND itab2.
      WHEN '06'.
      itab2-jun = t_s .
      itab2-KUNAG = wa_itab1-KUNAG.
      itab2-name1 = wa_itab1-name1.
      itab2-total = wa_itab1-total.
      sum6 = sum6 + itab2-jun.
      APPEND itab2.
      WHEN '07'.
      itab2-jul = t_s .
      itab2-KUNAG = wa_itab1-KUNAG.
      itab2-name1 = wa_itab1-name1.
      itab2-total = wa_itab1-total.
        sum7 = sum7 + itab2-jul.
      APPEND itab2.
      WHEN '08'.
      itab2-aug = t_s .
      itab2-KUNAG = wa_itab1-KUNAG.
      itab2-name1 = wa_itab1-name1.
      itab2-total = wa_itab1-total.
      sum8 = sum8 + itab2-aug.
      APPEND itab2.
      WHEN '09'.
      itab2-sep = t_s .
      itab2-KUNAG = wa_itab1-KUNAG.
      itab2-name1 = wa_itab1-name1.
      itab2-total = wa_itab1-total.
        sum9 = sum9 + itab2-sep.
      APPEND itab2.
      WHEN '10'.
      itab2-oct = t_s .
      itab2-KUNAG = wa_itab1-KUNAG.
      itab2-name1 = wa_itab1-name1.
      itab2-total = wa_itab1-total.
        sum10 = sum10 + itab2-oct.
      APPEND itab2.
      WHEN '11'.
      itab2-nov = t_s .
      itab2-KUNAG = wa_itab1-KUNAG.
      itab2-name1 = wa_itab1-name1.
      itab2-total = wa_itab1-total.
      sum11 = sum11 + itab2-nov.
      APPEND itab2.
      WHEN '12'.
      itab2-dec = t_s.
      itab2-KUNAG = wa_itab1-KUNAG.
      itab2-name1 = wa_itab1-name1.
      itab2-total = wa_itab1-total.
      sum12 = sum12 + itab2-dec.
      APPEND itab2.
    itab2-total = itab2-jan + itab2-feb + itab2-mar + itab2-apr + itab2-may + itab2-jun + itab2-jul + itab2-aug + itab2-sep
    + itab2-oct + itab2-nov + itab2-dec .
    total = sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7 + sum8 + sum9 + sum10 + sum11 + sum12.
    IF MM = 'A'.  " Mode for Append
        APPEND itab2.
    ELSE.             " Mode for Modify
        itab2-KUNAG = itab1-KUNAG.
        itab2-name1 = itab2-name1.
        "MODIFY itab2 WHERE kunag = itab1-kunag.
    ENDIF.
    "loop at itab2  .
    on change of itab2-KUNAG." ,itab2-name1,itab2-jan,itab2-feb,itab2-mar,itab2-apr,itab2-may,itab2-jun,itab2-jul,itab2-aug,itab2-sep,itab2-oct.
              WRITE:/1 SY-VLINE,
                itab2-KUNAG   under   'PARTY' LEFT-JUSTIFIED ,0  SY-VLINE COLOR 2,
                itab2-name1   under     'NAME' LEFT-JUSTIFIED ,10 SY-VLINE,
                itab2-jan DECIMALS 1  under    'JAN' LEFT-JUSTIFIED,40 SY-VLINE,
                itab2-feb DECIMALS 1 under    'FEB' LEFT-JUSTIFIED,50 SY-VLINE,
                itab2-mar DECIMALS 1  under    'MAR' LEFT-JUSTIFIED,60 SY-VLINE,
                itab2-apr DECIMALS 1 under    'APR' LEFT-JUSTIFIED,70 SY-VLINE,
                itab2-may DECIMALS 1 under    'MAY' LEFT-JUSTIFIED,80 SY-VLINE,
                itab2-jun DECIMALS 1 under    'JUN' LEFT-JUSTIFIED,90 SY-VLINE,
                itab2-jul DECIMALS 1 under    'JUL' LEFT-JUSTIFIED,100 SY-VLINE,
                itab2-aug DECIMALS 1 under    'AUG' LEFT-JUSTIFIED,110 SY-VLINE,
                itab2-sep DECIMALS 1 under    'SEP' LEFT-JUSTIFIED,120 SY-VLINE,
                itab2-oct DECIMALS 1 under    'OCT' LEFT-JUSTIFIED,130 SY-VLINE,
                itab2-nov DECIMALS 1 under    'NOV' LEFT-JUSTIFIED,140 SY-VLINE,
                itab2-dec DECIMALS 1 under    'DEC' LEFT-JUSTIFIED,150 SY-VLINE,
                itab2-Total DECIMALS 1 under  'TOTAL' LEFT-JUSTIFIED,160 SY-VLINE COLOR 3,
                170 SY-VLINE COLOR 3.
                uline.
      "itab2-total = itab2-jan +value itab2-febitab3-maritab2-apritab2-mayitab2-junitab3-julitab2-augitab2-sepitab2-octitab3-nov+itab2-dec).
    "itab2-total = sum(itab2-jan)  .
    endon.
    "endloop.
    ENDCASE.
    ENDIF.
    "ENDFORM.
    ENDAT.
    ENDLOOP.
    ENDCASE.
    write:  sum1 DECIMALS 1  under    'JAN' LEFT-JUSTIFIED,40 SY-VLINE,
             sum2 DECIMALS 1 under    'FEB' LEFT-JUSTIFIED,50 SY-VLINE,
             sum3 DECIMALS 1  under    'MAR' LEFT-JUSTIFIED,60 SY-VLINE,
             sum4 DECIMALS 1 under    'APR' LEFT-JUSTIFIED,70 SY-VLINE,
             sum5  DECIMALS 1 under    'MAY' LEFT-JUSTIFIED,80 SY-VLINE,
             sum6 DECIMALS 1 under    'JUN' LEFT-JUSTIFIED,90 SY-VLINE,
             sum7 DECIMALS 1 under    'JUL' LEFT-JUSTIFIED,100 SY-VLINE,
             sum8 DECIMALS 1 under    'AUG' LEFT-JUSTIFIED,110 SY-VLINE,
             sum9 DECIMALS 1 under    'SEP' LEFT-JUSTIFIED,120 SY-VLINE,
             sum10 DECIMALS 1 under    'OCT' LEFT-JUSTIFIED,130 SY-VLINE,
             sum11 DECIMALS 1 under    'NOV' LEFT-JUSTIFIED,140 SY-VLINE,
             sum12 DECIMALS 1 under    'DEC' LEFT-JUSTIFIED,150 SY-VLINE,
             sum13 DECIMALS 1 under  'TOTAL' LEFT-JUSTIFIED,160 SY-VLINE COLOR 1.
    uline.
    regards
    Piroz

  • Report for monthly sales(sales office wise,sales group wise,plant wise)

    Please send the Report for monthly sales(sales office wise,sales group wise,plant wise)  with T.CODE.,

    Hi
    As per my knowledge there is no Standard Report in SAP based on sales office, sales group. and plant.
    You may create your own report using MC18,MC21 and MC24.... Otherwise ask your ABAPer's help...
    Muthu

  • Send Sale Quotation to customer by email

    Can i send out sale quotation to customer by email in B1.
    Can you help me! Thank you

    Hi.
    In 2004C
    You ought to have SBO Mailer from SBO Service Manager installed. Then open document and choose File - Send - E-mail. If contact person has e-mail it will put in automatically, if no type or In window Send message choose Add recipient - Contact Person. Check E-mail. type here. Fill Subject and press Send.
    With regards
    Maxim Groonis

  • How to Generate sales orders with custom Fields using BAPI_BUSPROCESSND_CREATEMULTI

    Hi,
    I need to generate sales orders with custom fields on table CRMD_ORDERADM_H using BAPI_BUSPROCESSND_CREATEMULTI, after changing the structure BAPI_TE_CRMD_ORDERADM_H, and feed the  EXTENSIONIN table of the BAPI with data, the order is created, but any value on custom fields.
    After debuging, I saw that the BAPI search for structure conversion in table CRMC_OBJECTS_GEN, but we haven't entry with BAPI_TE_CRMD_ORDERADM_H in this table. is that the problem ?, Is there any way to fix it?
    Best Regards,
    Salah.

    That depends on where do you have the customer fields, check the table CRMD_CUSTOMER_H, if your custom fields are there, you need to use the changing parameter CUSTOMER_HEAD, I guess your already checked that one, right? but there's no custom fields, well...AET/EEWB doesn't enhance the strcuture of the BAPI, so you should do it manually, check the note following note for further details.
    988410 - FAQ: User-defined fields in the BAPI
    If you don't have access to the SAP Marketplace, in resume you should create an append on the structure BAPIBUS20001_CUSTOMER_H and include the following strcutrue CI_EEW_CUSTOMER_H
    Cheers!
    Luis

  • How to get the current month value for a customer exit variable?

    How to get the current month value for a customer exit variable? 
    And also if we have an InfoObject with date value (including date, month, year), then how to derive the month value from this date type of Char.?
    Thanks!

    Hi Kevin,
    Check here........
    Re: Customer Exist for "From Current Date To Month End"
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/25d98cf6-0d01-0010-0e9b-edcd4597335a
    Cal month
    Regards,
    Vijay.

  • Table name for sales order with Customer info

    Hi Gurus,
    Could you please provide me table name for  sales order with customer no and customer name.
    I have list of sales order number (more than 1000 no's ) i need to identify customer number and customer name (ship to party and sold to party information). I am running this report every week. so i plan to create sqvi for this report.
    Thanks and regards,
    B.Deethya.

    Hello,
    Access Tables VBAK & VBAP.
    From the above tables you will get Solt to Party & Ship to Party Codes.
    For Customer names you have to pass the Customer Codes to Table - KNA1
    Hope this clarifies.
    Thanks,
    Jignesh Mehta

  • Help With Monthly Sales Query

    Hello All -
    We use the below Query to find monthly sales for each of our stock units.  However, it only provides the current year -- so for 2010, all our 2009 data is gone and the query just shows Jan 2010.
    Is there any way to adjust this Query so that we can select the year we want to see?
    Thanks!
    Mike
    SELECT T0.ITEMCODE,
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with
    (NOLOCK) WHERE MONTH(T1.DOCDATE) = 1 AND T1.ITEMCODE
    = T0.ITEMCODE AND YEAR(T1.DOCDATE) = YEAR(GETDATE())) AS 'JAN Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with
    (NOLOCK) WHERE MONTH(T1.DOCDATE) = 2 AND T1.ITEMCODE
    = T0.ITEMCODE AND YEAR(T1.DOCDATE) = YEAR(GETDATE())) AS 'FEB Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with
    (NOLOCK) WHERE MONTH(T1.DOCDATE) = 3 AND T1.ITEMCODE
    = T0.ITEMCODE AND YEAR(T1.DOCDATE) = YEAR(GETDATE())) AS 'MAR Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with
    (NOLOCK) WHERE MONTH(T1.DOCDATE) = 4 AND T1.ITEMCODE
    = T0.ITEMCODE AND YEAR(T1.DOCDATE) = YEAR(GETDATE())) AS 'APR Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with
    (NOLOCK) WHERE MONTH(T1.DOCDATE) = 5 AND T1.ITEMCODE
    = T0.ITEMCODE AND YEAR(T1.DOCDATE) = YEAR(GETDATE())) AS 'MAY Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with
    (NOLOCK) WHERE MONTH(T1.DOCDATE) = 6 AND T1.ITEMCODE
    = T0.ITEMCODE AND YEAR(T1.DOCDATE) = YEAR(GETDATE())) AS 'JUN Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with
    (NOLOCK) WHERE MONTH(T1.DOCDATE) = 7 AND T1.ITEMCODE
    = T0.ITEMCODE AND YEAR(T1.DOCDATE) = YEAR(GETDATE())) AS 'JUL Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with
    (NOLOCK) WHERE MONTH(T1.DOCDATE) = 8 AND T1.ITEMCODE
    = T0.ITEMCODE AND YEAR(T1.DOCDATE) = YEAR(GETDATE())) AS 'AUG Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with
    (NOLOCK) WHERE MONTH(T1.DOCDATE) = 9 AND T1.ITEMCODE
    = T0.ITEMCODE AND YEAR(T1.DOCDATE) = YEAR(GETDATE())) AS 'SEP Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with
    (NOLOCK) WHERE MONTH(T1.DOCDATE) = 10 AND T1.ITEMCODE
    = T0.ITEMCODE AND YEAR(T1.DOCDATE) = YEAR(GETDATE())) AS 'OCT Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with
    (NOLOCK) WHERE MONTH(T1.DOCDATE) = 11 AND T1.ITEMCODE
    = T0.ITEMCODE AND YEAR(T1.DOCDATE) = YEAR(GETDATE())) AS 'NOV Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with
    (NOLOCK) WHERE MONTH(T1.DOCDATE) = 12 AND T1.ITEMCODE
    = T0.ITEMCODE AND YEAR(T1.DOCDATE) = YEAR(GETDATE())) AS 'DEC Amt'
    FROM dbo.OITM T0
    LEFT JOIN dbo.INV1 T1 ON T1.ItemCode = T0.ItemCode
    WHERE T0.SellItem = 'Y'
    GROUP BY T0.ItemCode,YEAR(T1.DOCDATE) HAVING YEAR(T1.DOCDATE) = YEAR(GETDATE())
    ORDER BY T0. ITEMCODE

    /*Hello there!!
    you should try this code*/
    SELECT T0.ITEMCODE, (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 1
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = (YEAR(GETDATE())-1)) AS 'JAN Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 2
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = (YEAR(GETDATE())-1)) AS 'FEB Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 3
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = (YEAR(GETDATE())-1)) AS 'MAR Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 4
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = (YEAR(GETDATE())-1)) AS 'APR Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 5
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = (YEAR(GETDATE())-1)) AS 'MAY Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 6
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = (YEAR(GETDATE())-1)) AS 'JUN Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 7
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = (YEAR(GETDATE())-1)) AS 'JUL Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 8
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = (YEAR(GETDATE())-1)) AS 'AUG Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 9
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = (YEAR(GETDATE())-1)) AS 'SEP Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 10
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = (YEAR(GETDATE())-1)) AS 'OCT Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 11
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = (YEAR(GETDATE())-1)) AS 'NOV Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 12
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = (YEAR(GETDATE())-1)) AS 'DEC Amt'
    FROM dbo.OITM T0 LEFT JOIN dbo.INV1 T1 ON T1.ItemCode = T0.ItemCode WHERE T0.SellItem = 'Y'
    GROUP BY T0.ItemCode,YEAR(T1.DOCDATE) HAVING YEAR(T1.DOCDATE) = (YEAR(GETDATE())-1) ORDER BY T0. ITEMCODE
    thou i suggest that its more practical for you to use a variable to enter the year, for example like this.
    declare @year as char(4)
    set @year = '2009'
    SELECT T0.ITEMCODE, (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 1
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = @year) AS 'JAN Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 2
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = @year) AS 'FEB Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 3
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = @year) AS 'MAR Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 4
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = @year) AS 'APR Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 5
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = @year) AS 'MAY Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 6
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = @year) AS 'JUN Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 7
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = @year) AS 'JUL Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 8
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = @year) AS 'AUG Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 9
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = @year) AS 'SEP Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 10
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = @year) AS 'OCT Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 11
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = @year) AS 'NOV Amt',
    (SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with (NOLOCK) WHERE MONTH(T1.DOCDATE) = 12
    AND T1.ITEMCODE = T0.ITEMCODE AND YEAR(T1.DOCDATE) = @year) AS 'DEC Amt'
    FROM dbo.OITM T0 LEFT JOIN dbo.INV1 T1 ON T1.ItemCode = T0.ItemCode WHERE T0.SellItem = 'Y'
    GROUP BY T0.ItemCode,YEAR(T1.DOCDATE) HAVING YEAR(T1.DOCDATE) = @year ORDER BY T0. ITEMCODE

  • Monthly Sales report of a given Year

    Hi Experts,
    I have a requirement that User enters Fiscal year in Selection Prompt, based on the year, user wants monthly sales  like
    Jan-2010 | Feb-2010 | March 2010 | ..........| Dec-2010
    How can i get this?
    My report layout is like
    Vendor nbr     Vendor name  201001  201002   201003  201004     201005     201006     201007     201008     201009
         201010     201011     201012     Grand Total of sales revenue                                                                                                                             
    Thanks
    David

    Hi David,
    Can you add a column for Year?
    If Yes, then you Section the Year column in the report. This will make the months appear below this specific year.
    Then put the prompt for the Year. So when the user selects the year (eg: 2010), he will get all the months under the year 2010.
    Thanks
    Niranjan

  • Monthly Sales Report

    Hi All!
    Is there any kind of report in SAP B1 that shows comparison of monthly sales year over year by state.  So, for example, CA sales Jan-Dec 07 vs. Jan-Dec 08? 
    Thanks,
    Mike

    Hi Mike,
    Only 3 types of reports built-in for sales analysis.  Namely: By Customers, By Items or By Sales Employee.
    You need either a XL Report or a query to define this report.
    Thanks,
    Gordon

  • Sales report per Customer Hierarchy

    Hello
    We manage the credit of some customers by Customers Hierarchy, this is, we assign the credit limit to the main customer, and then, that credit could be used by the dependent nodes.
    Does anyone know if there is a report where we could check the sales per main customer, that includes the sales of the dependent nodes?
    Thank you in advance

    Enrique
    Can you not see it in the field 'Credit exposure' for the main customer in transaction FD33?
    You should get the cumulative exposure there.
    If not use VA05 or VA05n and create a variant for each hierarchy with all the customers and get a full listing with total sales.
    or you can use SIS to perform Standard Analysis for customer ( T code MCTA) and create a variant here again with all the customers in a hierarchy.
    Does it work?

  • MRP Generated production orders greys out Sales Order and Customer fields

    Hi there,
    The MRP generated production orders greys out the Sales Order and Customer fields for some reasons. These fields are really important as they link the production order to the sales order and the customer's purchase order. Could the SAP team please fix this or advise alternative way of getting the sales order and customer info on production order? Thanks.

    Hello
    MRP only poulated this fields in case the material master has been set up with a strategy group hich is make to order (normally 20). Otherwise MRP summarizes all the requirements from different Customer orders and creates a production order
    Stephan

  • MRP - Sales order and customer fields grey-out

    Hi there,
    The Sales order and customer fields are grey-out for all MRP generated production orders. Can the SAP programmers please get this fixed? It should either read in the sales order number and the customer number or allow user to type in the sales order, just like the manually created production order.
    cheers

    Hello Gordon,
    If production is make-to-order rather than make-to-stock, the MRP should read in the sales order number and the customer, since it is specific to the sales order. Even for make-to-stock production, where it cannot read in the specific sales order number, it should at least not grey out the field, don't you think so? By greying out the field, users are not allowed to type in the sales order number even when the production order directly relates to a particular sales order. As such, we are not able to link it back to the sales order where other info such as customer's purchase order, etc... can be found.
    Could you please advise alternative way of linking MRP generated production orders to the sales orders? thanks

  • Monthly Sales By Geography

    Hello All -
    We would like to have a query that shows us monthly sales by geography (US State).
    However, using the Bill To Address or the Ship To Address is a problem for us -- I won't get into the details but it doesn't serve our purposes very well.
    Instead, we would like the location to be referenced from our account number.  The first two characters of a BP's account number represents their state. 
    So, first step would be to consolidate sales for all BP's that share the same first two letters in their account number.  This should, in theory, give us total sales for a particular state.  Then, we would want to see a listing of that state's sales by month.  So, result would be something like this:
               Jan      Feb     Mar     etc.
    AK
    AL
    CA 
    Can anyone help with this? 
    Thanks!
    Mike

    I just randomly selected a year.  You may change it to any year you want.
    Freight is included.  However, for adding Credit Memos I have to try more.
    Try this:
    SELECT P.[SalesSTATE],
    [1] as [Jan],
    [2] as [Feb],
    [3] as [Mar],
    [4] as [Apr],
    [5] as [May],
    [6] as [Jun],
    [7] as [Jul],
    [8] as [Aug],
    [9] as [Sep],
    [10] as [Oct],
    [11] as [Nov],
    [12] as [Dec]
    FROM (SELECT Left(T0.CardCode,2) as [SalesState] ,
    Case WHEN ISNULL(T1.DocTotal,0) !=0
    THEN T1.DocTotal ELSE -T2.DocTotal END as [DocTotal],
    CASE WHEN ISNULL(T1.DocTotal,0) !=0 THEN MONTH(T1.docdate)
    ELSE MONTH(T2.docdate) END as [month]
    FROM dbo.ocrd T0
    LEFT JOIN dbo.oinv T1 ON T1.CardCode = T0.CardCode AND Year(T1.docdate)=2010
    LEFT JOIN dbo.ORIN T2 ON  T2.CardCode = T0.CardCode AND Year(T2.docdate)=2010
    WHERE (T0.CardCode in (SELECT CardCode FROM OINV)) OR
    (T0.CardCode in (SELECT CardCode FROM ORIN)))  S
      PIVOT  (SUM(DocTotal) FOR [month] IN
    ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])) P
    ORDER BY P.[SalesState]

Maybe you are looking for