Need a query for monthly Report

Hello All,
I need a query for monthly report,
comp_code
emp_id
dept_id
work_day
100
A100
MECH
01/01/2013
100
A100
MECH
02/01/2013
100
A100
MECH
03/01/2013
100
A100
MECH
04/01/2013
100
A100
MECH
05/02/2013
100
A100
MECH
08/02/2013
100
A100
MECH
09/02/2013
100
A100
MECH
10/02/2013
100
A100
MECH
12/05/2013
100
A100
MECH
13/05/2013
100
A101
CIV
01/04/2013
100
A101
CIV
02/04/2013
100
A101
CIV
03/04/2013
100
A101
CIV
04/04/2013
100
A101
CIV
06/04/2013
100
A101
CIV
06/06/2013
100
A101
CIV
07/06/2013
100
A101
CIV
08/06/2013
100
A101
CIV
09/06/2013
100
A101
CIV
10/06/2013
100
A101
CIV
11/12/2013
100
A101
CIV
12/12/2013
100
A101
CIV
13/12/2013
100
A101
CIV
14/12/2013
    Dear friends this the sample table of my report.In which table has contain list of  employees with their working days(actual table has contain almost 5laks of records).
suppose user choose the date between 01/01/2013 and 31/12/2013 then the result should be like this.
comp_code
emp_id
dept_id
month
Total_work
100
A100
MECH
JANUARY
4
100
A100
MECH
FEBRUARY
2
100
A100
MECH
MARCH
0
100
A100
MECH
APRIL
0
100
A100
MECH
MAY
2
100
A100
MECH
JUNE
0
100
A100
MECH
JULY
0
100
A100
MECH
AUGUST
0
100
A100
MECH
SEPTEMBER
0
100
A100
MECH
OCTOBER
0
100
A100
MECH
NOVEMBER
0
100
A100
MECH
DECEMBER
0
100
A101
CIV
JANUARY
0
100
A101
CIV
FEBRUARY
0
100
A101
CIV
MARCH
0
100
A101
CIV
APRIL
5
100
A101
CIV
MAY
0
100
A101
CIV
JUNE
5
100
A101
CIV
JULY
0
100
A101
CIV
AUGUST
0
100
A101
CIV
SEPTEMBER
0
100
A101
CIV
OCTOBER
0
100
A101
CIV
NOVEMBER
0
100
A101
CIV
DECEMBER
4

Hi,
If you want the output to include months where no work was done (with 0 in the total_work column) then you need to outer-join a "table" that has one row per month, and make it a partitioned outer join:
WITH  got_end_points   AS
   SELECT  TRUNC (MIN (work_day), 'MONTH')   AS first_month
   ,       TRUNC (MAX (work_day), 'MONTH')   AS last_month
   FROM    table_x
,   all_months   AS
   SELECT  ADD_MONTHS (first_month, LEVEL - 1)   AS a_month
   ,       ADD_MONTHS (first_month, LEVEL)       AS next_month
   FROM    got_end_points
   CONNECT BY  LEVEL <= 1 + MONTHS_BETWEEN (last_month, first_month)
SELECT    t.comp_code
,         t.emp_id
,         t.dept_id
,         m.a_month
,         COUNT (t.work_day) AS total_work
FROM             all_months  m
LEFT OUTER JOIN  table_x     t  PARTITION BY (t.comp_code, t.emp_id, t.ept_id)
                                ON   t.work_day  >= a.a_month
                                AND  t.work_day  <  a.next_month
GROUP BY  t.comp_code
,         t.emp_id
,         t.dept_id
,         m.a_month
ORDER BY  t.comp_code
,         t.emp_id
,         t.dept_id
,         m.a_month
As posted, this include every month that is actually in the table.  You can change the first sub-query if you want to enter first and last months.
I hope this answers your question.
If not, post  a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all tables involved, and also post the results you want from that data.
Point out where the query above is giving the wrong results, and explain, using specific examples, how you get the correct results from the given data in those places.  If you changed the query at all, post your code.
Always say which version of Oracle you're using (e.g., 11.2.0.2.0).
See the forum FAQ: https://forums.oracle.com/message/9362002

Similar Messages

  • Improving a query for a report in b1

    Dear All,
    We have a query  for a report. this report display all invoices with it´s Dscription in the system just have 3 descriptions so i need the the report display the this description in column not in row and then have the sum by  description. i dont know how can i put a picture for showing the example.
    Some one knows how can i do? down the code.
    Regards
    NANCY
    SELECT distinct  T1.visorder as 'No. Linea',
                            T0.DocNum as 'No. Factura',
                            T0.DocDate as 'Fecha',
                            T0.CardName as 'Cliente',
                            T1.U_CANTIDAD as 'Tonelaje',
                            T0.U_OPERACION as 'No. Operación',
                            T0.DocCur as 'Moneda',
                            T0.GrosProfit as 'Ingreso total de factura',
                            T1.ItemCode as 'Código',
                            T1.Dscription,
                            T1.Quantity*T1.Price as 'Importe por Servicio',
                            T1.LineVat as 'IVA por servicio',
                            T0.VatSum as 'IVA por factura',
                            T2.PlngGroup as 'Cuenta SUN'
    FROM OINV T0 LEFT JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry
    inner join OCRD T2 ON T0.CardCode = T2.CardCode
    WHERE T0.Series = 49 and
                T0.DocDate BETWEEN [%0] AND [%1]

    Hi Nancy,
    I'm not sure that I understand your requirement 100% but assuming you only have 3 descriptions then the following would give you totals for your different descriptions...
    Simply replace the text ' etc in the code below with the descriptions values.
    SELECT distinct 
         T1.visorder as 'No. Linea',
            T0.DocNum as 'No. Factura',
            T0.DocDate as 'Fecha',
            T0.CardName as 'Cliente',
            T1.U_CANTIDAD as 'Tonelaje',
            T0.U_OPERACION as 'No. Operación',
            T0.DocCur as 'Moneda',
            T0.GrosProfit as 'Ingreso total de factura',
            T1.ItemCode as 'Código',
            CASE
                   WHEN T1.Dscription = '<description1>'
                   THEN T1.Quantity*T1.Price
                   ELSE 0
              END as '<description1>',
              CASE
                   WHEN T1.Dscription = '<description2>'
                   THEN T1.Quantity*T1.Price
                   ELSE 0
              END as '<description2>',
              CASE
                   WHEN T1.Dscription = '<description3>'
                   THEN T1.Quantity*T1.Price
                   ELSE 0
              END as '<description3>',
            T1.LineVat as 'IVA por servicio',
            T0.VatSum as 'IVA por factura',
            T2.PlngGroup as 'Cuenta SUN'
    FROM OINV T0 LEFT JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry
    inner join OCRD T2 ON T0.CardCode = T2.CardCode
    WHERE T0.Series = 49 and
                T0.DocDate BETWEEN [%0] AND [%1]
    Hope this helps.
    Regards,
    Sean

  • Crosstab query for a report

    I've created the below crosstab query for a report.
    Select Grouping_Condition,Warehouse,Max(Value) Over (Partition By Grouping_Condition,Warehouse) As Total,
    Sum(Value) Over (Partition By Warehouse) As Total_Containers_Per_Warehouse,
    Sum(Vat1Ue) Over () As Total_Containers,
    (Max(Vat1Ue) Over (Partition By Grouping_Condition,Warehouse))
    /(Sum(Vat1Ue) Over (Partition By Warehouse))*100 As Total_Pct
    From
    Seleect Grouping_Condition,Warehouse,Count(*) As Value
    From
    Set1Ect
    T1.Warehouse,Shipped_Weight As Shipped_Tons,T1.Max_Weight As Maxtonnes,
    Case When (Shipped_Weight)< (T1.Max_Weight*0.001)*0.95 Then 'containers_under_95'
    When (Shipped_Weight*0.001) Between (T1.Max_Weight*0.001)*0.95 And (T1.Max_Weight*0.001) Then 'containers_95_100'
    Et1Se 'containers_above_weight'
    End Grouping_Condition
    From
    Tabt1E1 T1
    ,Tabt1E2 T2
    ,Tabt1E3 C
    Where
    T1.Co11 = T2.Col1
    And T1.Col2=C.Col2
    And More Conditions
    Where Warehouse In ('W1','W2','W3','W4','W5')
    Group By (Grouping_Condition,Warehouse)
    The Above Query Gives Me Output Something Like Below:
    Grouping_Condition Warehouse Total Total_Containers_Per_Warehouse Total_Containers Total_Pct
    Containers_95_100 W1 5 10 60 50
    Containers_Under_95 W1 5 10 60 50
    Containers_95_100 W2 10 20 60 50
    I've Got Report In The Below Format
    W1 W2 W3 W4 W5 Total
    Total_Containers 10 20 60
    Containers_95_100 5 10 15
    Containes_95_100_% 50 50 ????
    I Need To Calculate The Total Percentage In The Above Table With ????
    Any Help Is Much Appreciated..

    It appears as though you already have your groupings and counts per grouping, but require a ratio of each groupings count against all other counts. Is that correct ?
    If so, try the new 11g analytic function, something like this:
    select Grouping_Condition
          ,Warehouse
          ,ratio_to_report(Value) over () as Count_Ratio_over_Report
    ..

  • I need two query in one report (two detail section in one query)

    Hi master sorry for again distribute
    Sir I need two query in one report
    Because I need two detail section in my one report
    Such as
    Master
    Vno=9088989
    Detail          1
    =
    =
    ==
    =
    Total                     99999
    Detail          2
    =
    =
    ==
    =
    Total                     33333
    Sir how I get this type of report
    Please give me idea
    Thanking you
    Aamir

    I want to see the report as follow.
    d_name: CPU-1
    date: -----------
    Software installed:
    sw_id, software, version, serial_no, sw_type
    (list of softwares attached, can be more then one)
    Hardware attached:
    hw_id, hardware, specification (same like software list, it will contain hardware list attached to specific device),
    Please if you can help me that how will i make a query for this.
    Thanks and Regards
    Maz

  • Need a query for export table data .....

    Hi,
    I need a query for exporting the data in a table to a file.
    Can anyone help me ?
    Thanking You
    Jeneesh

    SQL> spool dept.txt
    SQL> select * from dept;
        DEPTNO DNAME          LOC
            10 ACCOUNTING     NEW YORK
            20 RESEARCH       DALLAS
            30 SALES          CHICAGO
            40 OPERATIONS     BOSTON
    SQL> spool off
    SQL> ed dept.txt

  • Sample query for Aging Report

    Hi! Anybody who has a sample sql query for aging report? basically this is the table structure and sample data
    bill_no B1-01 B1-02 B1-03
    bill_date 01-JAN 01-FEB 01-MAR
    previous_balance 100 600 800
    current_charges 500 200 400
    total_due 600 800 1200
    As of march 1, total due is 1200. how can i get the breakdown of 1200 as to the number of days it has been due. ex. 500 (60 days old 01-JAN to 01-MAR), 200 (30 days old), 400 (current)
    please help. thanks!
    null

    SELECT CEIL((SELECT MAX(Bill_Date) FROM Bill)- Bill_Date) Days , Previous_Balance, Current_Charges FROM Bill ORDER BY Days ASC
    Then create a matrix reprot.

  • Dynamic Query for a report

    Hi,
    I have to generate a report which contains a query with database link. This database link is not hard coded and would be picked up from another report which contans a link to this report. So this database link value for the query could be any. Can anyone guide me hot to write a dynamic select statement so that i could append database link value at run time.
    Thanks
    Salman

    Hi,
    You can not directly use a PL/SQL query to create an Interactive Report - that is not yet available.
    What you could do is create a collection from your query and then use that for the report. Have a look at: [http://download-uk.oracle.com/docs/cd/B32472_01/doc/appdev.300/b32471/advnc.htm#BABGHJFD].
    In there, you will see APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY - this allows you to create a collection from a string. You could add a PL/SQL process to your page that runs "On Load: Before Header" that actually creates the collection. Something like:
    BEGIN
    IF APEX_COLLECTION.COLLECTION_EXISTS('MYCOLLECTIONNAME') THEN
      APEX_COLLECTION.DELETE_COLLECTION('MYCOLLECTIONNAME');
    END IF;
    APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY('MYCOLLECTIONNAME','MY SQL QUERY STRING');
    END;Your Interactive Report can then be based on:
    SELECT SEQ_ID, C001, C002, C003, ...
    FROM APEX_COLLECTIONS
    WHERE COLLECTION_NAME = 'MYCOLLECTIONNAME'The tricky part is the headings as these would tend to be the SEQ_ID, C001, C002, C003, etc column names from the collection itself.
    To get around this, make sure that the report's sql statement includes as many Cnnn columns as you will need for the widest of the reports. Before doing anything else, run the report once to make sure that all these columns are included in the output.
    Then, through Shared Components, Application Items, create items that will hold heading names - for example, G_HEADING1, G_HEADING2 etc - one for each possibile column.
    Now, update the process to:
    BEGIN
    IF APEX_COLLECTION.COLLECTION_EXISTS('MYCOLLECTIONNAME') THEN
      APEX_COLLECTION.DELETE_COLLECTION('MYCOLLECTIONNAME');
    END IF;
    IF ..test1.. THEN
      APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY('MYCOLLECTIONNAME','MY SQL QUERY STRING 1');
      :G_HEADING1 := 'ColumnHeading1Value';
      :G_HEADING2 := 'ColumnHeading2Value';
      :G_HEADING3 := NULL; -- column not used for this query, so set it to null
    ELSIF ..test2 .. THEN
      APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY('MYCOLLECTIONNAME','MY SQL QUERY STRING 2');
      :G_HEADING1 := 'ColumnHeading1Value';
      :G_HEADING2 := 'ColumnHeading2Value';
      :G_HEADING3 := 'ColumnHeading3Value';
    ELSIF ...etc...
      .. etc ...
    END IF;
    END;Finally, on the report itself, set the column headings to *&G_HEADING1.*, *&G_HEADING2.* etc. Then, on each column, set a Condition of "Value of Item in Expression 1 is NOT NULL" and in Expression 1, enter in the application item for that column - eg, G_HEADING1
    I have done all that here: [http://apex.oracle.com/pls/otn/f?p=16338:5] - select either Departments or Employees from the list and the report will change.
    Andy

  • Capture current query for a report region

    Apologies if this is answered elsewhere, but I could not find it.
    I have a reporting application where several different reports that have a list of customers. I would like to develop a means to generate a mailing list for the customers that is generic and can be used on any report. I envision getting the list of customer by executing a query like:
    select person_id from
    ( <report region query> );
    Is there a way to get the current query (or query result) for a report region and process it in a PL/SQL procedure? This would need to work for regions that have an SQL query and a PL/SQL function returning a query.
    Thanks,
    Bill

    sorry for the double post, browser trouble...

  • Query for recurring reports using Query Builder in Business objects

    1. How to count webi Recurring reports using query builder in business objects? (Need Query for this)
    2. How to count Crystal Recurring reports using query builder in business objects? (Need Query for this)
    I am able to get summerized recurring reports using Query Builder.
    For Example we have 343 reports which are under recurring (This includes both Webi Reports and Crystal Reports).
    we need to get individually how many webi reports are under Recurring and Crystal reports are under Recurring.

    1. How to count webi Recurring reports using query builder in business objects? (Need Query for this)
    2. How to count Crystal Recurring reports using query builder in business objects? (Need Query for this)
    I am able to get summerized recurring reports using Query Builder.
    For Example we have 343 reports which are under recurring (This includes both Webi Reports and Crystal Reports).
    we need to get individually how many webi reports are under Recurring and Crystal reports are under Recurring.

  • Query for following report

    Dear All,
             My A/P Invoice entry is as Follows.
            A/P Invoice
            1) Item code (Multiple Items Possible)
            2) Quantity per item
            3) Unit Price per item
            4) Under frieght I entry 3 freight value
            5) Tax Code is selected
            The report required is
            1) A/P Invoice No
            2) A/P Post Date
            3) A/P Documnet date
            4) A/P Vendor Code
            5) A/P Vendor Name
            6) Vendor state ( From Vendor Master date Address)
            7) Vendor Cst no / Vat no / Tin No ( These all are UDF)
            8) A/P Doc total before Discount ( This does not contain frieght value) ( I am able to obtain this from the OPCH-- Max 1099 Amount Field)
            9) A/P Doc total After discount
            10) A/P Feieght Break up.
            11) A/P DOc total + Excise details
            12) A/P Tax Code
            13) A/P Tax Amount
            14) A/P Final Total Value
            The main issue is till point number (8) I can get the query after that the query goes wrong.
            I need a similar query for A/R Invoice also.
            Please advice.

    hi aslam,
    Try this query,
    SELECT T0.DocNum as 'AP Invoice No.',
    T0.DocDate as 'Posting Date',
    T0.TaxDate as 'Doc. Date',
    T0.CardCode as 'Vendor Code',
    T0.CardName as 'Vendor Name',
    T1.State1,
    T2.TaxId1 as 'CST No.',
    T2.TaxId11 as 'TIN No.',
    T0.Max1099, T0.DocTotal,
    T0.TotalExpns,
    T0.VatSum
    FROM [dbo].[OPCH]  T0 INNER JOIN [dbo].[OCRD]  T1 ON T0.CardCode = T1.CardCode
    INNER JOIN [dbo].[PCH12]  T2 ON T0.DocEntry = T2.DocEntry
    WHERE T0.DocDate >= '[%0]' and T0.DocDate <= '[%1]'
    Whether it solves ur requirement ?
    Jeyakanthan

  • Query for month start and end date

    Hi,
    I want to pick every month Start date and End Date. could anybody suggest what is the query for this.
    I need output
    Start Date End Date
    01/01/2011 31/01/2011
    01/02/2011 28/02/2011
    01/03/2011 31/03/2011
    01/04/2011 30/04/2011
    01/05/2011 .......

    Hi,
    SQL> select sysdate from dual;
    SYSDATE
    24-FEB-11
    SQL> select last_day(sysdate) from dual;
    LAST_DAY(
    28-FEB-11
    SQL> select last_day(sysdate),last_day(add_months(sysdate,-1))+1 from dual;
    LAST_DAY( LAST_DAY(
    28-FEB-11 01-FEB-11
    SQL> select last_day(sysdate),last_day(add_months(sysdate,-2))+1 from dual;
    LAST_DAY( LAST_DAY(
    28-FEB-11 01-JAN-11Try to refer to Oracle documentation and try to experiments the functions, you will get results on your hand.
    - Pavan Kumar N
    Edited by: Pavan Kumar on Feb 24, 2011 12:51 PM
    Edited by: Pavan Kumar on Feb 24, 2011 12:52 PM

  • TDS Amount on Vendor Advance Shows positive value in *QUERY* for TDS Report

    Hi Everybody,
    I have made a query for List of TDS Report with Vendor informations as required by my client. In which the value of TDS on Vendor Advance Payment appears as positive value instaead of negative value. Please suggest how to rectify.
    Thanks,
    Paul

    Dear,
    If you have cleared the advance in F-54, then this will reverse the tax amount. That could be the reason for tax amount in debit.

  • Help needed in query for Materialized View

    Hi,
    I want to create a materialized view which has some precalcultaed values.
    I have four dimension tables out of which one is a Time Dimension table with levels as Year->Quarter->Month.
    The precalculations are the moving averages and cummulative values of Sales Amt on the dimension values over a period of 4 Months.
    The dimension tables are Clients, Products, Channel, Time.
    Fact Table is Sales_Fact which will have the sales amount for different members of the dimension.
    Since my fact table is very huge, i want to create a materialized view where i could store the required calculated measures, here Moving Average of Sales Amt for each Client, Product, Channel dimensions over a period of 4 Months.
    Can anybody help with writing the query for this..Any help in this regard will be appreciated..
    Please give me suggestions for this..

    Check this link.
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14223/aggreg.htm#sthref1612
    Regards
    Raj

  • Customizing a query for a report according to login user name

    Hi, I am new to the portal, so I have a urgent question:
    In my company we have local departments who are supposed to use
    the same report but only with their own data.
    I have a table with all users and their parameters (e.g.
    username + deptno) and might be able to create a function which
    gets the username (found that in one of the standard packages)
    and retrieves the parameter from the database via SELECT. The
    function should then return the parameter to be used where ever
    needed.
    Big question: How can I use this function in a SELECT-Statement
    for my report? I guess it must be something like
    SELECT * FROM -table or view- WHERE deptno = -schema.function-
    Right? Does the function have to be part of a package?
    Thanks in advance for any help.
    Yours
    Reinhard Piper
    Munich / Germany

    the table or view is WWSEC_person this is where the users are..
    Ruud

  • Retrieve underlying SQL query for deski report via java SDK in BOXIR2

    Hi all,
    I am trying to retrieve underlying SQL queries of a deski report in BOXIR2. However I find the error as
    oDataProvider = oDocumentInstance.getDataProviders().getItem(i1);               
    System.out.print(oDataProvider.getName());
    oSQLDataProvider = (SQLDataProvider) oDataProvider;
    oSQLContainer_root = oSQLDataProvider.getSQLContainer();
    But "This feature is not supported for desktop Intelligence " exception has occured.
    I am running the same query for Webi, and I did not find any issue . After several time spending in google, it appears to me that this code is supported by webi only. But "This feature is not supported for desktop Intelligence " exception has occured.
    Please help me to find out the solution in java SDK. If its not supported by Java SDK, then could you please provide me any workaround , e.g. any macro . Any help !!
    Regards,
    Nita
    Edited by: Nita Prasad on Aug 11, 2009 11:20 AM
    Edited by: Nita Prasad on Aug 11, 2009 11:25 AM

    Hi Fritz,
    I am not getting the way.. how to open the deski report programmatically. I am writing the code in this way:
    Dim oInfoObjects1 As CrystalInfoStoreLib.InfoObjects
            Set oInfoObjects1 = oInfoStore.Query("SELECT * FROM CI_INFOOBJECTS WHERE SI_NAME='" & oInfoObject.Title & "' AND SI_ID='" & oInfoObject.Id & "' order by SI_NAME")
        Dim oInfoObject1 As CrystalInfoStoreLib.InfoObject
        Dim UserCount1 As Integer
            UserCount1 = oInfoObjects1.ResultCount
            MsgBox "SELECT * FROM CI_INFOOBJECTS WHERE SI_NAME=' " & oInfoObject.Title & " ' AND SI_ID=' " & oInfoObject.Id & " ' order by SI_NAME"
            MsgBox " Total number of Deski reports are : [" & UserCount1 & "]", vbOKOnly
        Dim j As Integer
         For j = 1 To UserCount1
          Set oInfoObject1 = oInfoObjects1.Item(i)
                sFile_ReportList = StrConv(oInfoObject1.Title, vbLowerCase) & ".rep"
                sFile_Output = "D:\TraceWrite1\ " & StrConv(oInfoObject1.Id & "_" & oInfoObject1.Title, vbLowerCase) & ".txt"
                sFile_ReportListTemp = StrConv(oInfoObject1.Files.Item(j), vbLowerCase)
                MsgBox "[" & sFile_ReportList & "]", vbOKOnly
                        If Dir(sFile_ReportList) = "" Then
                MsgBox "The text file [" & sFile_ReportList & "] for the DeskI documents does not exist!" & vbCrLf & "Aborting process."
                Exit Sub
                End If
    I am getting the error on line ...  If Dir(sFile_ReportList) = "" Then...  The code is not able to locate the deski report path.
    Is this the correct way to get a deski report information? Please let me know, If I am going in the right direction.
    Edited by: Nita Prasad on Aug 18, 2009 3:47 PM

Maybe you are looking for