Count records per month
Hi,
there is two date columns "from" and "to" in the table "contracts" (contract validity, e.g. from 01.03.2012 to 31.12.2014). How to select the count of valid contratc per month ?
Result:
month valid contracts
03.2012 2341
04.2012 2355
Thanks in advance,
Michel
Hi, Michel,
Michel77 wrote:
Hi,
there is two date columns "from" and "to" in the table "contracts" (contract validity, e.g. from 01.03.2012 to 31.12.2014). How to select the count of valid contratc per month ?So, if the start_date is in March, 2012, and the end_date is in December, 2014, do you want that 1 contract to be counted 34 times, once for each month from March 2012 through December 2014?
Here's one way:
WITH month_range AS
SELECT TRUNC (MIN (start_date, 'MONTH')) AS start_month
, TRUNC (MAX (end_date, 'MONTH')) AS end_month
FROM contracts
, all_months AS
SELECT ADD_MONTHS ( start_month
, LEVEL - 1
) AS this_month
, ADD_MONTHS ( start_month
, LEVEL
) AS next_month
FROM month_range
CONNECT BY LEVEL <= 1 + MONTHS_BETWEEN ( end_month
, start_month
SELECT a.this_month
, COUNT (c.start_date) AS valid_contracts
FROM all_months a
LEFT OUTER JOIN contracts c ON c.start_date < a.next_month
AND c.end_date >= a.this_month
GROUP BY a.this_month
ORDER BY a.this_month
I hope this answers your question.
If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only), and also post the results you want from that data.
Point out where the statment above is getting the wrong results, and explain, using specific examples, how you get the right results from the given data in those places.
Always say which version of Oracle you're using (e.g., 11.2.0.2.0).
See the forum FAQ {message:id=9360002}
Similar Messages
-
Chart: amount (count) of records per month (and year). How?
I need to create a chart eventually. Can't get what formula to use. The data is:
1 | 15 Jan
2 | 20 Jan
25 | 14 Mar
26 | 16 Mar
28 | 20 Mar
The chart should show amount(count) of records per month(and year). So in this example:
Jan: 2
Mar: 3
Hm... totally lost. Any tips?To do this it would be best to add a column in which you isolate the month from the rest of the date information. Here's an example:
You may hide the Month-Isolated column if it impacts your presentation.
The Month-Isolated formula is: =IF(ISBLANK(B), "", (MONTH(B)))
The formula for the count in the Summary table is: =COUNTIF(Data Table :: $C, COLUMN())
Hope this gets you on your way.
Regards,
Jerry -
How to find the number of records per months in cube
Hi,
how to find the number of records per months for my all cubes?
Can i use the ListCube transaction to find totl number f records per cube monthwise ?
JimmyHi,
Here is a program to generate no of records and list of ODS and Cubes in Active version.Schedule this program in background and create a cube to load this information and schedule to the data from the file generated by the program. Schedule this all per you requirement.
1.Copy the code into your Z<programname> from Se38.
2.change the FILENAME in CALL FUNCTION 'GUI_DOWNLOAD' in the program to the location from where you can pick the information to load data to cube(eg Application server).
3.Save program.
4.Schedule the program in background as required
5.Create cube with infoobjects to hold no of records and Infoprovider name
6.Load this cube based on event after the program job is done.
Hence you can report on this cube to see no of records in CUBE or ODS in your box.
Please find the code below.
Cheers,
Kavitha Kamesh.
types: begin of itabs ,
tabname type dd02l-tabname,
end of itabs.
data: itab type itabs occurs 0 with header line.
data: counter type i.
data: begin of itab1 occurs 0,
tabname type dd02l-tabname,
counter type i,
end of itab1.
DATA: ITABTABNAME TYPE STRING.
DATA: LENGTH TYPE I.
DATA: OBJECT(30).
data: str(6) type c.
select tabname from dd02l into table itab where ( tabname LIKE '/BIC/F%' or tabname LIKE '/BIC/A%00' )
and TABCLASS = 'TRANSP' and AS4LOCAL = 'A'.
loop at itab.
select count(*) from (itab-tabname) into counter.
str = itab-tabname.
if str = '/BIC/F'.
LENGTH = STRLEN( ITAB-TABNAME ).
SHIFT itab-tabname BY 6 PLACES LEFT.
ELSEIf str = '/BIC/A'.
SHIFT itab-tabname BY 6 PLACES LEFT.
LENGTH = STRLEN( ITAB-TABNAME ).
LENGTH = LENGTH - 2.
endif.
itab1-tabname = itab-tabname(LENGTH).
append itab1.
itab1-counter = counter.
clear itab-tabname.
clear: COUNTER.
endloop.
*********** itab1
loop at itab1.
write:/ itab1-tabname, itab1-counter.
endloop.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
* BIN_FILESIZE =
FILENAME = 'c:records.xls'
FILETYPE = 'ASC'
* APPEND = ' '
WRITE_FIELD_SEPARATOR = ','
* HEADER = '00'
* TRUNC_TRAILING_BLANKS = ' '
* WRITE_LF = 'X'
* COL_SELECT = ' '
* COL_SELECT_MASK = ' '
* DAT_MODE = ' '
* CONFIRM_OVERWRITE = ' '
* NO_AUTH_CHECK = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* WRITE_BOM = ' '
* TRUNC_TRAILING_BLANKS_EOL = 'X'
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* IMPORTING
* FILELENGTH =
TABLES
DATA_TAB = itab1
* FIELDNAMES =
* EXCEPTIONS
* FILE_WRITE_ERROR = 1
* NO_BATCH = 2
* GUI_REFUSE_FILETRANSFER = 3
* INVALID_TYPE = 4
* NO_AUTHORITY = 5
* UNKNOWN_ERROR = 6
* HEADER_NOT_ALLOWED = 7
* SEPARATOR_NOT_ALLOWED = 8
* FILESIZE_NOT_ALLOWED = 9
* HEADER_TOO_LONG = 10
* DP_ERROR_CREATE = 11
* DP_ERROR_SEND = 12
* DP_ERROR_WRITE = 13
* UNKNOWN_DP_ERROR = 14
* ACCESS_DENIED = 15
* DP_OUT_OF_MEMORY = 16
* DISK_FULL = 17
* DP_TIMEOUT = 18
* FILE_NOT_FOUND = 19
* DATAPROVIDER_EXCEPTION = 20
* CONTROL_FLUSH_ERROR = 21
* OTHERS = 22
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. -
dear members,
I have been provided with the date range.
i want to calculate the no. of days for each month, within the above date range.
e.g. date1='10-01-2011' and date2='18-03-2011'
for month=01 count days=22
for month=02 count days=28
for month=03 count days=18
thanks
teefu
developerWITH parameters AS
SELECT TO_DATE ( '10-01-2011'
, 'DD-MM-YYYY'
) AS start_dt
, TO_DATE ( '18-03-2011'
, 'DD-MM-YYYY'
) AS end_dt
FROM dual
SELECT TO_CHAR ( start_dt + LEVEL - 1
, 'FMMonth YYYY'
) AS month
, COUNT (*) AS days
FROM parameters
CONNECT BY LEVEL <= 1 + end_dt - start_dt
GROUP BY TO_CHAR ( start_dt + LEVEL - 1
, 'FMMonth YYYY'
ORDER BY MIN (LEVEL)
duplicate thread already one has given the above answer
count days of the month
Edited by: LPS on Jul 21, 2011 2:16 AM -
I need to display, a record count on a column within a table per month
This is what i currently have...but not what i am looking for...
select creation_date,
sum(DECODE(to_char(creation_date, 'MM/DD/YYYY HH24:MI:SS'),'01', 1,0)) JAN,
sum(DECODE(to_char(creation_date, 'MM/DD/YYYY HH24:MI:SS'),'02', 1,0)) FEB,
sum(DECODE(to_char(creation_date, 'MM/DD/YYYY HH24:MI:SS'),'03', 1,0)) MAR,
sum(DECODE(to_char(creation_date, 'MM/DD/YYYY HH24:MI:SS'),'04', 1,0)) APR,
sum(DECODE(to_char(creation_date, 'MM/DD/YYYY HH24:MI:SS'),'05', 1,0)) MAY,
sum(DECODE(to_char(creation_date, 'MM/DD/YYYY HH24:MI:SS'),'06', 1,0)) JUN,
sum(DECODE(to_char(creation_date, 'MM/DD/YYYY HH24:MI:SS'),'07', 1,0)) JUL,
sum(DECODE(to_char(creation_date, 'MM/DD/YYYY HH24:MI:SS'),'08', 1,0)) AUG,
sum(DECODE(to_char(creation_date, 'MM/DD/YYYY HH24:MI:SS'),'09', 1,0)) SEP,
sum(DECODE(to_char(creation_date, 'MM/DD/YYYY HH24:MI:SS'),'10', 1,0)) OCT,
sum(DECODE(to_char(creation_date, 'MM/DD/YYYY HH24:MI:SS'),'11', 1,0)) NOV,
sum(DECODE(to_char(creation_date, 'MM/DD/YYYY HH24:MI:SS'),'12', 1,0)) DEC,
count(*) TOTAL
from applsys.fnd_user
where creation_date > to_date('01/01/2010','MM-DD-YYYY')
GROUP BY creation_date
order by 1;
I need the amount of users added to be displayed per month..together with a total...
output similar to this:
COYDIV JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC TOTAL
101 4 0 1 0 0 0 0 0 0 0 0 0 5
102 0 3 0 0 0 0 0 0 0 0 0 0 3
103 0 1 1 0 0 0 0 0 0 0 0 0 2
104 0 1 0 0 0 0 0 0 0 0 0 0 1
105 0 0 1 0 0 0 0 0 0 0 0 0 1
107 1 0 0 0 0 0 0 0 0 0 0 0 1
108 0 1 0 0 0 0 0 0 0 0 0 0 1
109 2 0 2 0 0 0 0 0 0 0 0 0 4
117 0 0 2 0 0 0 0 0 0 0 0 0 2
118 0 0 1 0 0 0 0 0 0 0 0 0 1
119 0 0 1 0 0 0 0 0 0 0 0 0 1
122 0 1 0 0 0 0 0 0 0 0 0 0 1
201 1 0 0 0 0 0 0 0 0 0 0 0 1
401 4 0 1 0 0 0 0 0 0 0 0 0 5
403 0 1 0 0 0 0 0 0 0 0 0 0 1
603 0 0 1 0 0 0 0 0 0 0 0 0 1
609 0 0 3 0 0 0 0 0 0 0 0 0 3
612 1 0 0 0 0 0 0 0 0 0 0 0 1
615 0 2 0 0 0 0 0 0 0 0 0 0 2
619 0 0 1 0 0 0 0 0 0 0 0 0 1
2001 0 2 2 0 0 0 0 0 0 0 0 0 4
2201 0 1 2 0 0 0 0 0 0 0 0 0 3
2301 0 0 1 0 0 0 0 0 0 0 0 0 1
2302 0 1 0 0 0 0 0 0 0 0 0 0 1
2303 0 0 1 0 0 0 0 0 0 0 0 0 1
5001 0 2 3 0 0 0 0 0 0 0 0 0 5
TOTAL 13 16 24 0 0 0 0 0 0 0 0 0 53
any ideas on how i can remedy my scriptOk here goes
1. boldVersion 11.1.0.7.0
2. boldsample data
"USER_ID","USER_NAME", "LAST_UPDATE_DATE", "LAST_UPDATED_BY", "CREATION_DATE", "CREATED_BY","LAST_UPDATE_LOGIN","SESSION_NUMBER","START_DATE","END_DATE","DESCRIPTION", "LAST_LOGON_DATE","PASSWORD_DATE","PASSWORD_ACCESSES_LEFT","PASSWORD_LIFESPAN_ACCESSES","PASSWORD_LIFESPAN_DAYS","EMPLOYEE_ID","EMAIL_ADDRESS","FAX","CUSTOMER_ID","SUPPLIER_ID","WEB_PASSWORD","USER_GUID","GCN_CODE_COMBINATION_ID","PERSON_PARTY_ID"
2289, [email protected], 3/24/2010 12:37:23 PM, 2289, 1/18/2010 12:22:49 PM, 1295, 4975366, 24, 1/18/2010, ,Cecilia Buthelezi,4/6/2010 8:46:36 AM,3/24/2010 12:37:23 PM,,,30,8180,[email protected],,,,,,,20702
2269, [email protected], 3/24/2010 3:40:47 PM, 2269, 1/14/2010 3:42:58 PM, 1295, 4917252, 10, 1/14/2010, ,Heather Summers, 3/24/2010 3:40:48 PM,3/24/2010 3:40:47 PM,,,30,2237,[email protected],,,,,,,7169
3. boldexpected out put
JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC TOTAL
4 0 1 0 0 0 0 0 0 0 0 0 5
0 3 0 0 0 0 0 0 0 0 0 0 3
TOTAL 13 16 24 0 0 0 0 0 0 0 0 0 53
etc
4. boldExplanation of expected output
a select statement using the creation date, for users added per month and total users added for months in which users were added.
thanks
Edited by: user11978142 on Apr 6, 2010 5:46 AM -
I want to diaplay my records from the databasewith 10 records per page. i l
i want to diaplay my records from the databasewith 10 records per page. i learned that it can be done through pagination . Please can anyone there help me and give me the code of how to page my records in my jsp pages
I have small code ,but its not working....
below is the code....
public ResultSet codeResult(int i){
if(dataSource!= null){
try {
con=dataSource.getConnection();
stmt=con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
int maxRows=stmt.getMaxRows();
System.out.println("the maxRows is:"+maxRows);
System.out.println("the I value is:"+i);
if((i < 0) || (i > maxRows)){
i=0;
stmt.setFetchSize(i);
long t = System.currentTimeMillis();
rs=stmt.executeQuery("select asc_code,countrycode,asc_name,asc_address1,asc_address2,asc_city,asc_country,asc_region,asc_contact_person,asc_contact_no,asc_email_id,asc_fax_no,nso_incharge,nso_email,ar_ap_code from asc_master order by asc_code asc");
but,its giving all records...
any one help me on this........
Thank you,
D.Nagireddy.
} catch (SQLException e) {
e.printStackTrace();
return rs;
}hey, here my code for paging. hope it helps...
public void DueRecordInfo(int page,int MAX_PER_PAGE)
con = new DBConnection().getConnection();
try
Statement stmt = con.createStatement();
String sqlcount = "SELECT COUNT(*) FROM INFO WHERE TO_DATE(DATEUPDATED,'Month DD, YYYY') < ADD_MONTHS(SYSDATE,-6) AND OBSOLETE LIKE 'No'";
ResultSet rscount = stmt.executeQuery(sqlcount);
rscount.next();
total_row_count = rscount.getInt(1);
lowerbound = (page * MAX_PER_PAGE - (MAX_PER_PAGE))+1;
upperbound = lowerbound - 1 + MAX_PER_PAGE;
String sql = "Select * from "+
"(SELECT row_number() over(ORDER BY TO_DATE(DATEUPDATED,'Month DD, YYYY') DESC) AS RN,ID,SPECNO,REVISEDNO,DATEREVISED,TITLE,ORIGINATOR,DCBNUMBER,DCBLOCATION,OBSOLETE,DATEOBSOLETE,WORDFILE,PDFFILE,DATEUPDATED FROM INFO WHERE TO_DATE(DATEUPDATED,'Month DD, YYYY') < ADD_MONTHS(SYSDATE,-6) AND OBSOLETE LIKE 'No') " +
"WHERE RN BETWEEN "+ lowerbound + " AND " +upperbound;
ResultSet rs = stmt.executeQuery(sql);
while (rs.next())
id.add(num, rs.getString("ID"));
specno.add(num, rs.getString("SPECNO"));
revisedno.add(num, rs.getString("REVISEDNO"));
daterevised.add(num, rs.getString("DATEREVISED"));
title.add(num, rs.getString("TITLE"));
originator.add(num, rs.getString("ORIGINATOR"));
dcbnumber.add(num, rs.getString("DCBNUMBER"));
dcblocation.add(num, rs.getString("DCBLOCATION"));
obsolete.add(num, rs.getString("OBSOLETE"));
dateobsolete.add(num, rs.getString("DATEOBSOLETE"));
wordfile.add(num, rs.getString("WORDFILE"));
pdffile.add(num, rs.getString("PDFFILE"));
dateupdated.add(num, rs.getString("DATEUPDATED"));
num++;
con.close();
rscount.close();
rs.close();
stmt.close();
} -
How to find out the Transactions used per month & the USER who used that
Hi,
1)How to find out the Transactions used per month & the USER who used that?
2)and can i get the above same for minimum 20 month?
System : SAP- Enterprise Core Component.You can use my program...
*& Report Z_ABAP_TCODE_MONITOR
*****& Program Type : Report *
*****& Title : Z_ABAP_TCODE_MONITOR *
*****& Transaction code : ZTCODE_USAGE *
*****& Developer name : Shailendra Kolakaluri *
*****& Deveopment start date : 26 th Dec 2011 *
*****& Development Package : ZDEV *
*****& Transport No : DEVK906086 *
*****& Program Description : This program is to display
*List all tcodes executed during previous day.
*& Show the number of users executing tcodes
*& Modification history
REPORT Z_ABAP_TCODE_MONITOR.
*& List all tcodes executed during previous day.
*& Show the number of users executing tcodes
TYPE-POOLS : slis.
DATA: ind TYPE i,
fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
layout TYPE slis_layout_alv,
variant TYPE disvariant,
events TYPE slis_t_event WITH HEADER LINE,
heading TYPE slis_t_listheader WITH HEADER LINE.
*REPORT z_report_usage.
TYPES: BEGIN OF zusertcode,
date TYPE swncdatum,
user TYPE swncuname,
mandt TYPE swncmandt,
tcode TYPE swnctcode,
report TYPE swncreportname,
count TYPE swncshcnt,
END OF zusertcode.
*data : date type n.
DATA: t_usertcode TYPE swnc_t_aggusertcode,
wa_usertcode TYPE swncaggusertcode,
wa TYPE zusertcode,
t_ut TYPE STANDARD TABLE OF zusertcode,
wa_result TYPE zusertcode,
t_result TYPE STANDARD TABLE OF zusertcode.
PARAMETER: month TYPE dats DEFAULT sy-datum.
*PARAMETER: date TYPE dats.
*select-options : username for wa_usertcode-account.
START-OF-SELECTION.
PERFORM get_data.
PERFORM get_fieldcatalog.
PERFORM set_layout.
PERFORM get_event.
PERFORM get_comment.
PERFORM display_data.
FORM get_data .
*date = sy-datum - 2 .
After start-of-selection add this line (parameter Month required 01 as day).
concatenate month+0(6) '01' into month.
CALL FUNCTION 'SWNC_COLLECTOR_GET_AGGREGATES'
EXPORTING
component = 'TOTAL'
ASSIGNDSYS = 'DEV'
periodtype = 'M'
periodstrt = month
TABLES
usertcode = t_usertcode
EXCEPTIONS
no_data_found = 1
OTHERS = 2.
wa-date = month.
*wa-date = date.
wa-mandt = sy-mandt.
wa_usertcode-account = username.
LOOP AT t_usertcode INTO wa_usertcode.
wa-user = wa_usertcode-account.
IF wa_usertcode-entry_id+72 = 'T'.
wa-tcode = wa_usertcode-entry_id.
wa-report = space.
ELSE.
wa-tcode = space.
wa-report = wa_usertcode-entry_id.
ENDIF.
COLLECT wa INTO t_ut.
ENDLOOP.
SORT t_ut BY report ASCENDING.
CLEAR: wa, wa_result.
endform.
FORM get_fieldcatalog .
fcat-tabname = 't_ut'.
fcat-fieldname = 'DATE'.
fcat-seltext_l = 'Date'.
fcat-key = 'X'.
APPEND fcat.
CLEAR fcat.
fcat-tabname = 't_ut'.
fcat-fieldname = 'MANDT'.
fcat-seltext_l = 'Client'.
fcat-key = 'X'.
APPEND fcat.
CLEAR fcat.
fcat-tabname = 't_ut'.
fcat-fieldname = 'USER'.
fcat-seltext_l = 'User Name'.
fcat-key = 'X'.
APPEND fcat.
CLEAR fcat.
fcat-tabname = 't_ut'.
fcat-fieldname = 'TCODE'.
fcat-seltext_l = 'Transaction Code'.
fcat-key = 'X'.
APPEND fcat.
ENDFORM.
*& Form SET_LAYOUT
text
--> p1 text
<-- p2 text
FORM set_layout .
layout-colwidth_optimize = 'X'.
ENDFORM. " SET_LAYOUT
*& Form GET_EVENT
text
--> p1 text
<-- p2 text
*FORM get_event .
events-name = slis_ev_top_of_page.
events-form = 'TOP_OF_PAGE'.
APPEND events.
*ENDFORM. " GET_EVENT
**& Form GET_COMMENT
text
--> p1 text
<-- p2 text
*FORM get_comment .
DATA: text(30).
text = 'Billing Report'.
heading-typ = 'H'.
heading-info = text.
APPEND heading.
*ENDFORM. " GET_COMMENT
**& Form top_of_page
text
--> p1 text
<-- p2 text
*FORM top_of_page .
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = heading[]
I_LOGO =
I_END_OF_LIST_GRID =
*ENDFORM. " top_of_page
*& Form DISPLAY_DATA
text
--> p1 text
<-- p2 text
FORM display_data .
sort t_ut[].
DELETE ADJACENT DUPLICATES FROM t_ut[] COMPARING ALL FIELDS.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
is_layout = layout
it_fieldcat = fcat[]
i_save = 'A'
is_variant = variant
it_events = events[]
TABLES
t_outtab = t_ut
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " DISPLAY_DATA -
Hi Team members,
we are working on a budgeting application and stuck on below Research, please assist/advise is there any built-in Function to count Days in a Month which we can use or a work around .
Requirement:
To calculate budgeted Expenses per month, user will enter the daily budgeted expenses for a month and it will multiple with total number of days in a month via formula. same thing happens to some revenue items.
Note:
every months contains different number of Days which will result in change in Expense/Revenue figures.
e.g
Daily Expense for Jan will be $100/day
total days in Jan = 31
Result will be 31*100 = $3100 expense in Jan
but in Feb it will be
Daily Expense for Feb will be $100/day
total days in Jan = 28
Result will be 28*100 = $2800 expense in Feb
Regards,
AleeDear Alp,
Thanks for the Code!!!
Note:
In general terms the algorithm for calculating a leap year is as follows...
A year will be a leap year if it is divisible by 4 but not by 100. If a year is divisible by 4 and by 100, it is not a leap year unless it is also divisible by 400.
Thus years such as 1996, 1992, 1988 and so on are leap years because they are divisible by 4 but not by 100. For century years, the 400 rule is important. Thus, century years 1900, 1800 and 1700 while all still divisible by 4 are also exactly divisible by 100. As they are not further divisible by 400, they are not leap years.
Regards,
Alee -
Count records for a specific date range
Hi,
I am using BI Publisher with Siebel 8.1.1.1. I have a monthly report where I want to count the number of service requests entered per customer per month.
I am using the following expression that works for one month:
<?count(ssServiceRequest[ssSeverity[.='1-Critical'] and xdoxslt:date_diff('d',psfn:getCanonicalDate(ssCreated), xdoxslt:current_date($_XDOLOCALE,$_XDOTIMEZONE), $_XDOLOCALE, $_XDOTIMEZONE) <=28])?>
However, I want to be able to specify a specific date range for my count, i.e ssCreated >= '01/02/2011' and <= '28/02/2011', as opposed to count for the past 28 days. Can you please advise what syntax I can use to specify a date range?
Any help will be greatly appreciated!
ClaireHello,
Many many thanks for your reply.
I'm doing as you suggest and am using the date_diff to the end of the period in question. I've tried the following to get the number of Service Requests with Severity 1-Critical, created in Jan 2011, feb 2011:
<?count(ssServiceRequest[ssSeverity[.='1-Critical'] and xdoxslt:date_diff('d', (psfn:getCanonicalDate(ssCreated), $_XDOLOCALE, $_XDOTIMEZONE), '2011-01-31', $_XDOLOCALE, $_XDOTIMEZONE) <=31])?>
<?count(ssServiceRequest[ssSeverity[.='1-Critical'] and xdoxslt:date_diff('d', (psfn:getCanonicalDate(ssCreated), $_XDOLOCALE, $_XDOTIMEZONE), '2011-02-28', $_XDOLOCALE, $_XDOTIMEZONE) <=28])?>
In my xml sample data that I'm using I have 2 service requests that mean the criteria for Jan, yet when I run my report I'm getting '0'. The problem seems to be with my end of period date '2011-01-31'. I've also tried with both start and end period date (using a negative value as per your suggestion), but I still get '0':
<?count(ssServiceRequest[ssSeverity[.='1-Critical'] and xdoxslt:date_diff('d', (psfn:getCanonicalDate(ssCreated), $_XDOLOCALE, $_XDOTIMEZONE), '2011-01-01', $_XDOLOCALE, $_XDOTIMEZONE) <=-31 and xdoxslt:date_diff('d', (psfn:getCanonicalDate(ssCreated), $_XDOLOCALE, $_XDOTIMEZONE), '2011-01-31', $_XDOLOCALE, $_XDOTIMEZONE) <=31])?>
Many thanks,
Claire -
A query with workingdays per month per persons per period
Can anyone help me on the way in building a difficult SQL query?
I work with Oracle SQL. It is intended to calculate over a certain period, to find the working days for each month for each person.
I have a working query for calculate the number of days for 1 months minus holidays
Select count (*) NUM_WORK_DAYS
From (
Select to_date ('01-01-2010 ',' dd-mm-yyyy ') + ROWNUM-1 as day
From all_objects
Where ROWNUM <to_number (to_char (last_day ('01-01-2010 '), DD')) + 1)
Where to_number (to_char (day, 'd')) between 1 and 5
And not exists (select NULL
From HOLIDAY
Where Holiday.hol=day)
There is a datetable with the following structure where I can get the periods:
DATES
YEAR | MONTH | WEEK | SD
2010 | 201002 | 201006 | 09/02/2010
All required months are present
It is intended that the user give a beginning and a end time specify.
I have a table of workingdays per person named
CALENDAR
CAL | MON | TUE | WED | THU | FRI | SAT | SUN
Person | Y | Y | N | Y | Y | N | N
And a table of holidays
HOLIDAY
CAL | HOL
Person | 01/01/2010
How can I combine the query for working days and build a query that returns for multiple people over multiple months the number of workingdays per month? I will ask the user to give a beginning period and a end period
I am aware that I ask a lot of your time, but I can not imagine the solution myself. Many thanks in advance
Gr,
ElsYou can do something like this:
SQL> select * from calendar;
PERSON M T W T F S S
1 Y Y N Y Y N N
2 Y Y Y Y Y N N
SQL> select * from holiday;
PERSON HOL
1 12-FEB-10
2 09-FEB-10
SQL> define start_day=2010-02-01
SQL> define end_day=2010-02-20
SQL> with period as (
2 select DATE '&start_day' start_date, DATE '&end_day' end_date
3 from dual),
4 days as (
5 select start_date+level-1 day
6 from dual,period
7 connect by level <= end_date-start_date+1),
8 mycal as (
9 select person, 'monday' day, mon works from calendar union all
10 select person, 'tuesday' day, tue from calendar union all
11 select person, 'wednesday' day, wed from calendar union all
12 select person, 'thursday' day, thu from calendar union all
13 select person, 'friday' day, fri from calendar union all
14 select person, 'saturday' day, sat from calendar union all
15 select person, 'sunday' day, sun from calendar
16 )
17 select person, count(0)
18 from mycal c, days d
19 where c.day = trim(to_char(d.day,'day'))
20 and c.works='Y'
21 and not exists (select 1 from holiday h where h.person=c.person and h.hol=d.day)
22 group by person;
old 2: select DATE '&start_day' start_date, DATE '&end_day' end_date
new 2: select DATE '2010-02-01' start_date, DATE '2010-02-20' end_date
PERSON COUNT(0)
1 11
2 14The PERIOD view is there only to accept start and end date.
The DAYS view contains all the days of the period
The MYCAL view unpivotes the calendar days returning 7 rows for each person, a row per weekday
Max
http://oracleitalia.wordpress.com -
Help for total count in a month
Hello everyone,I am reposting this message with the hope that I will get some help. Please help me I have a deadline to meet and maybe getting late in meeting the deadline.
Sometime back I had posted about the date function. I have that problem solved now my problem is that after finding all records which against each record I need to find the total count for that month if no records than I have to set it to a 0.
Here is how my program has been written.
PROCEDURE extract_materials
IS
CURSOR xyz
BEGIN
FOR xyz1 IN xyz LOOP
-- once inside the loop for each of the record from
the cursor I need to find a total count for that record for everymonth in the year.
All these records will be instered in to a staging table
Can you please help me out with this. I really appreciate this.
Thanks in advanceTake a look at analytic functions-- they should be just what the doctor ordered.
Justin -
Get date by group by per month basis...
Hello all,
I am trying to write a query where i want the count per month...so for example...the below query
select to_char(date, 'MM/DD/YYYY')
from test
where rownum < 10;
TO_CHAR(date
02/10/2009
02/10/2009
02/10/2009
02/10/2009
02/10/2009
05/31/2009
02/10/2009
so i want a count on the date, but want it per month basis....
select count(*), to_char(date, 'MM/DD/YYYY')
from test
where rownum < 10
group by to_char(date, 'MM/DD/YYYY');
so basically end results should be like below
count(*) date
10 Month1
12 Month2
13 Month3Hi,
You're GROUPing BY something that changes from day to day.
You need to GROUP BY something that only changes from month to month, like this:
SELECT COUNT (*)
, TO_CHAR (dt, 'MM/YYYY') -- DATE is not a good column name
FROM test
WHERE ROWNUM < 10
GROUP BY TO_CHAR (dt, 'MM/YYYY')
I hope this answers your question.
If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only), and also post the results you want from that data.
Explain, using specific examples where the query above is not doing what you want, how you get the correct results from the data you posted. -
How to get count for missing month
I created a view as follows:
CREATE OR REPLACE FORCE VIEW "Vinfection1" ("MONTH", "COUNT") AS
select "MONTH","COUNT" from (
select to_char(s.pdate,'Mon-yyyy') as month, count(*) as count
from surproc s, diagnosis_surproc d
where s.surprocid = d.surprocid and d.diagnosisid in ('506', '507', '508', '509', '510')
group by to_char(pdate,'Mon-yyyy'))
order by to_date(month,'Mon-yyyy')
Some months are missing in the view. I want to put that month and 0 in the view. How to do it?
Thanks,
JenniferHi, Jennifer,
You need to outer-join to some table or result set (such as all_months, below) that has one roe per month.
Here's one way:
CREATE OR REPLACE FORCE VIEW Vinfection1 (month, month_s, cnt) AS
WITH all_months AS
SELECT ADD_MONTHS (first_month, LEVEL - 1) AS month
FROM (
SELECT TRUNC (MIN (pdate), 'MONTH') AS first_month
, TRUNC (MAX (pdate), 'MONTH') AS last_month
FROM surproc
CONNECT BY LEVEL <= 1 + MONTHS_NETWEEN (last_month, first_month)
SELECT a.month
, TO_CHAR (a.month, 'Mon-yyyy') AS month_s
, COUNT (*) AS cnt
FROM all_months a
LEFT OUTER JOIN ( surproc s
JOIN diagnosis_surproc d ON s.surprocid = d.surprocid
AND d.diagnosisid IN ('506', '507', '508', '509', '510')
) ON a.month = TRUNC (s.pdate)
GROUP BY a.month
/Avoid table- and column names that are non-standatrd (such as names that need double-quotes), or are built-in function names (such as COUNT).
Don't use ORDER BY in a view. Almost anything you do with the view will cause the ordering to be lost anyway.
Even if you do have an ORDER BY clause in the view, you'll often want to ORDER BY month. Rather than call TO_DATE whenever you need to sort, I suggest having two month columns; month (whcih is a DATE) for sorting, filtering and joining, and month_s (whcih is a VARCHAR2) for displaying.
Use ANSI join syntax, especiallly for outer joins.
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.
Explain, using specific examples, how you get those results from that data.
Always say which version of Oracle you're using.
Edited by: Frank Kulash on Mar 20, 2012 12:03 PM
Added outer join condition -
I purchased, the 400 minute per month plan. I can'...
I purchased, the 400 minute per month plan. I can't make a phone call, and talk for two minutes, Without running out of skype credit. There's a problem with your system. I'm not receiving the benefits of what I paid for.
My regards,
goodshepherd9I think you may need to contact customer service regarding that matter. Just open the link pasted below to see the instructions on how to get in touch with customer service -
https://support.skype.com/en/faq/FA1170/how-can-i-contact-skype-customer-service
IF YOU FOUND OUR POST USEFUL THEN PLEASE GIVE "KUDOS". IF IT HELPED TO FIX YOUR ISSUE PLEASE MARK IT AS A "SOLUTION" TO HELP OTHERS. THANKS!
ALTERNATIVE SKYPE DOWNLOAD LINKS | HOW TO RECORD SKYPE VIDEO CALLS | HOW TO HANDLE SUSPICIOS CALLS AND MESSAGES -
Create a field routine to calculate the number of days per month
Hi Experts,
I need to create a field routine to count the number of days per month based on 0CALMONTH. Could you give me some inputs on how to do it?
Thanks!Hi,
Create InfoObejct and then insert it in InfoSource/InfoCube/DSO then write simp,e code for that based on your 0CALMONTH values.
You just copy and pas this in SE38 and see the result and implement for your requirements.
REPORT ztest1.
Data: zsydt type sy-datum,
zd(2) type n,
zm(2) type n,
zy(4) type n,
zcmnth TYPE /bi0/oicalmonth,
znds TYPE /osp/dt_day.
zsydt = sy-datum.
zd = '01'.
zm = zsydt+4(2).
zy = zsydt+0(4).
CONCATENATE zy zm zd INTO zsydt.
CALL FUNCTION '/OSP/GET_DAYS_IN_MONTH'
EXPORTING
iv_date = zsydt
IMPORTING
ev_days = znds. "No.of days in month.
write:/ zd.
write:/ zm.
write:/ zy.
write:/ zsydt.
write:/ znds.
Thanks
Reddy
Maybe you are looking for
-
New Macbook Pro stuck on transferring information screen?
I just purchased a MacBook Pro and attempted transferring my information from my old Asus laptop running Windows 7. I downloaded and installed the Windows Migration Assistant, and about half an hour into the transfer a screen came up on my Asus sayin
-
I had been trying to read from a plist to get file names of data files and it works fine when i run it in safari but after making its widget and putting it into iBooks it doesnot works. Please tell me any new method to read p list or correct my funct
-
Can't uninstall Acrobat 7 in Win 7 XP mode
Badly in need of some advice... I have Win 7 Professional edition, which has XP mode. I have Acrobat Standard 7.0 installed in XP mode, which very badly in XP mode. So now I've bought Acrobat Pro XI -- but haven't tried to install it because I can't
-
Solution Manager instead of Knowledge Warehouse?
Hi! We work today with Knowledge Warehouse (Version: 6200.600.144) to manage user guides and connect the user guides with R/3 via transactions. As we are upgrading SAP-GUI to 7.10 our version of KW stops to work with R/3. This means in the current si
-
Customize Title text in Flash Projector
Is it possibe to customize the title text that shown in Flash EXE? Default it is showing Macromedia Flash Player <version>