Date Range problem
hi,
on selection screen i am enetring the date range.
i.e 01.05.2006 to 10.05.2006
for this date range i am fetching material numbers to my itab.
actually there is no material numbers for the date range 02.05.2006 to 03.05.2006 but i nedd to display material number under that particular date only like below.
01.05.2006 02.05.2006 03.05.2006 04.05.2006 05.05.2006
1234 1567 4562
but for me output is coming like below.
01.05.2006 02.05.2006 03.05.2006 04.05.2006 05.05.2006
1234 1567 4562
how to solve this problem
Title edited by: Alvaro Tejada Galindo on Jun 3, 2008 3:43 PM
REPORT zp_example NO STANDARD PAGE HEADING LINE-SIZE 300.
TABLES : mara.
SELECT-OPTIONS : s_date FOR sy-datum.
DATA : it_mara TYPE TABLE OF mara WITH HEADER LINE,
date LIKE sy-datum,
m type i value 1.
WHILE ( s_date-low LE s_date-high ).
WRITE : s_date-low.
SELECT * FROM mara INTO it_mara WHERE ersda = s_date-LOW.
WRITE :/ IT_MARA-MATNR UNDER S_DATE-LOW .
ENDSELECT.
ADD 1 TO s_date-low.
sy-linno = 1. " <----- check the number according to your page heading
ENDWHILE.
Similar Messages
-
Stored Procdure date range problem
Hi All,
My Vendor created a Stored procedure which asks for a date range when first creating a standard report. Once the date range is entered then I select which data fields I want to display, etc. Once in the report, I can see the parameter fields, but they have a [?] with a weird little yellow icon, and I cannot see the parameter fields in the parameter tab. My users need to be able to change the date range in InfoView, but since there isn't a date range parameter, they cannot, and I also cannot get it to show up in the report in CR 2008. The only time I can get the date range entered is when creating a report, here is the procedure that the vendor gave me:
XSAC_GET_TEST_COUNT
( P_REPORT_CURSOR IN OUT XSAC_REPORTS.TEST_COUNT_VIEW_TYPE,
P_START_DATE IN DATE ,
P_END_DATE IN DATE )
Not sure how to fix this, and neither does the Vendor, although they created it.
Any help would be much appreciated.
I have other reports where I have successfully created a date range parameter, and they work fine, this is my first time with a stored procedure. and it asking for a date range when selecting the data source. Not from a date field in the reportHi All,
I found the problem,
The first Option is: Show on (Viewer) Panel, it was set to Do Not Show . So it was hidden.
I changed it Editable and it works fine.
Hopefully this will help someone in the future. -
Date range problem (bubble chart)
In my bubble chart on X axis Iu2019m displaying date range I have two parameters start_date and end_date in Crystal 2008 this range is displaying correct but in my web app not. In web app this range is displaying from 01-01-1970 to 01-01-1970 (but Iu2019m setting them from 01-09-2009 to 31-12-2009). Iu2019m sure that the parameters start and end date is set correct (I display this parameter in other place and date is correct). I'm doing this in JSF (IceFaces) and I'm using "reportPageViewer".
What could be wrong?The dates you are seeing are the default values. Check your code again, I don't believe you are setting them correctly.
-
How do I modify an event's date range?
I recently imported a series of photos from my camera, entering both an event name and description for the event. All photos but one were from this event. After deleting that single photo, the date range displayed underneath the event name still displays a range which includes the date from that single image. So now, even though all the images in the event are from the same day, the date of the event does not accurately depict this. How do I modify the date range?
This doesn't address the date range problem which no amount of Adjusting Date and Time or Batch Changing will fix, instead LarryHN workaround seems to work great. I imported over 11,000 photos into 08 and lots of them had a date range from 98 to 2001. The Batch Rename fixed all but one batch whichb just would not budge until Larry's workaround with the new Event method.
-
Date range query problem in report
Hi all,
I have created a report based on query and i want to put date range selection but query giving problem.
If i am creating select list selection then it is working fine means it will display all records on the particular date.
But what i need is that user will enter date range as creation_date1,creation_date2 and query should return all the records between these date range. i want to pass it by creating items, i created two items and passing creation_date range to display all records but not displaying and if not passing date then should take null as default and display all records
Here is the query:
/* Formatted on 2006/12/10 20:01 (Formatter Plus v4.8.0) */
SELECT tsh."SR_HEADER_ID", tsh."SALES_DEPT_NUMBER", tsh."COUNTRY",
tsh."LOCAL_REPORT_NUMBER", tsh."ISSUE_DATE", tsh."SUBJECT",
tsh."MACHINE_SERIAL_NUMBER", tsh."MACHINE_TYPE", tsh."MACHINE_HOURS",
tsh."STATUS"
FROM "TRX_SR_HEADERS" tsh, "TRX_SR_PARTS" tsp
WHERE (tsh.status LIKE :p23_status_sp OR tsh.status IS NULL)
AND (tsh.machine_type LIKE :p23_machine_type_sp)
AND ( tsh.machine_serial_number LIKE
TO_CHAR (:p23_machine_serial_number_sp)
OR tsh.machine_serial_number IS NULL
AND ( TO_CHAR (tsh.failure_date, 'DD-MON-YY') LIKE
TO_CHAR (:p23_failure_date_sp)
OR TO_CHAR (tsh.failure_date, 'DD-MON-YY') IS NULL
AND ( TO_CHAR (tsh.creation_date, 'DD-MON-YY')
BETWEEN TO_CHAR (:p23_creation_date_sp)
AND TO_CHAR (:p23_creation_date_sp1)
OR TO_CHAR (tsh.creation_date, 'DD-MON-YY') IS NULL
AND (tsh.issue_date LIKE :p23_date_of_issue_sp OR tsh.issue_date IS NULL)
AND (tsh.country LIKE :p23_country_sp OR tsh.country IS NULL)
AND ( tsh.local_report_number LIKE TO_CHAR (:p23_local_rep_num_sp)
OR tsh.local_report_number IS NULL
AND ( tsp.part_number LIKE TO_CHAR (:p23_part_number_sp)
OR tsp.part_number IS NULL
AND tsh.machine_type IN (
SELECT DISTINCT machine_type
FROM trx_sales_dept_machine_list
WHERE sales_department_id IN (
SELECT DISTINCT sales_department_id
FROM trx_user_sales_department
WHERE UPPER (user_name) =
UPPER ('&APP_USER.'))
AND SYSDATE >= valid_from)
AND tsh.sr_header_id = tsp.sr_header_id
can any one tell me wat is wroung in this query.
Any other way to write this?
Thank You,
AmitHi User....
Here is some date range SQL that my teams uses with some success:
For date columns that do not contain NULL values, try this (note the TRUNC, it might help with your "today" problem).
The hard coded dates allow users to leave the FROM and TO dates blank and still get sensible results (ie a blank TO date field asks for all dates in the future.
AND TRUNC(DATE_IN_DATABASE)
BETWEEN
decode( :P1_DATE_FROM,
TO_DATE('01-JAN-1900'),
:P1_DATE_FROM)
AND
decode( :P1_DATE_TO,
TO_DATE('31-DEC-3000'),:
:P1_DATE_TO)
For date columns that contain NULL values, try this (a little bit trickier):
AND nvl(TRUNC(DATE_IN_DATABASE),
decode( :P1_DATE_FROM,
decode( :P1_DATE_TO,
TO_DATE('30-DEC-3000'),
NULL),
NULL)
BETWEEN
decode( :P1_DATE_FROM,
TO_DATE('01-JAN-1900'),
:P1_DATE_FROM)
AND
decode( :P1_DATE_TO,
TO_DATE('31-DEC-3000'),
:P1_DATE_TO)
Note the 30-DEC-3000 versus 31-DEC-3000. This trick returns the NULL dates when the FROM and TO date range items are both blank.
I hope this helps.
By the way, does anyone have a better way of doing this? The requirement is given a date column in a database and a FROM and a TO date item on a page,
find all of the dates in the database between the FROM and TO dates. If the FROM date is blank, assume the user want all dates in the past (excluding NULL dates). If the TO date is blank, assume that the user wants all of the dates in the future (excluding NULL dates). If both FROM and TO dates are blank, return all of the dates in the databse (including NULL dates).
Cheers,
Patrick -
Oracle 10g - Problem with Date Ranges using Between
I am keeping track of patients who have not been contacted during a date range. if a nurse adds an event or note and the note is type 1,3,4 then this is a contact. The following works but if the event or note was made on the same day as the report is run, the current contact is not printed. Any help to improve the query and identify the problem would be appreciated. Also, if you add '1' to' n.created_date_time BETWEEN '10-Jan-2010' AND TRUNC(SYSDATE)' so it is ' n.created_date_time BETWEEN '10-Jan-2010' AND TRUNC(SYSDATE) + 1'. It works. What is wrong?
SELECT upper(symptom_text),
COUNT(UNIQUE(c.patient_id)) ,
COUNT(UNIQUE(
CASE
WHEN e.eventdate BETWEEN '10-Jan-2010' AND TRUNC(SYSDATE)
OR (n.created_date_time BETWEEN '10-Jan-2010' AND TRUNC(SYSDATE)
AND n.note_type_id IN (1,3,4))
THEN c.patient_id
ELSE 0
END)) - 1
FROM patient c,
cust_info ci,
event e,
note n
WHERE c.physician_id = 74
AND c.patient_id = ci.patient_id
AND ci.info_type_id = 32
AND ci.symptom_text IS NOT NULL
AND c.patient_id = e.patient_id(+)
AND c.patient_id = n.pk_id(+)
AND n.table_name(+) = 'patient'
GROUP BY upper(symptom_text)
ORDER BY DECODE(upper(symptom_text), 'A+', 1, 'A', 2, 'B', 3, 'C', 4, 'D', 5, 99)I suspect the end date is not inclusive. Fields are Date data types. Thanks for any help.Hi,
achtung wrote:
Understood. Frank was correct. Do you mean about the dates? Is that issue solved now?
It would help a lot if you posted some sample data (CREATE TABLE and INSERT statements) and the results you want from that data. Simplify as much as possible. For example, if everything involving the e and n tables is working correctly, forget about them for now. Post a question that only invloves the c and ci tables.
But, additionally, when a record in the cust_info doesn't exist my contact count is inaccurate. How can you explain this conceptually. I understand the query path is checking for this record due to the predicate. Perhaps the query should be redesigned. Thanks for your input!Again, you can see the results, and you know what they should be. Nobody else has that information. Please post some sample data and the results you want from that data.
In your earlier message you said
Could there be a problem if a record does not exist in the ci table?The condition:
AND ci.symptom_text IS NOT NULL
filters for this right? Maybe this could be part of the problem. why I'm not seeing records when a note is added to a patient's doc. How would this be technically be explained? You're doing a inner join between c and ci:
AND c.patient_id = ci.patient_id
AND ci.info_type_id = 32
AND ci.symptom_text IS NOT NULL ...Rows from c will be included only if there is a row in ci with the same patiend_id: even more, that matching row in ci must also have info_type_id=32 in a non-NULL symptom_text, otherwise, the row from c will be ignored.
If you want rows from c to be included even if there is no matching row in ci, then do an outer join, like you're already doing with the e and n tables:
WHERE c.physician_id = 74
AND c.patient_id = ci.patient_id (+)
AND ci.info_type_id (+) = 32
AND ci.symptom_text (+) IS NOT NULL
AND c.patient_id = e.patient_id(+)
AND c.patient_id = n.pk_id(+)
AND n.table_name(+) = 'patient' -
Problem with customer exit variable on date range
Hi All,
I have customer exit variable on date range. In the selection screen it has to give the week range as a default (05/21/2009 to 05/27/2009).
Earlier its working fine and from yesterday onwards it is not working properly. yesday onwards default date range was not displaying in selection screen.
Wht would be the problem.
Thanks in AdvanceHi Ashish,
I checked every thing what u told earlier. Every thing is fine.
And another thing is
I have routine in infopackage level. Since day before yesterday it was working fine and yesterday onwards it was not working.
Eg: budat will take the data based on routine for the week. But yesterday onwards it is not picking up the data.however I have the data in datasource for the week.
Wht would be the problem. I debuged the code and its working fine.
Sekhar -
I have a query that needs to pull data between a date range.
I've tried several things and nothing seems to work.
Any help would be greatly appreciated.
Here's the code:
<cftransaction>
<cfquery name="QryFollowUp"
datasource="NBProdReports">
SELECT TblContractInfo_SubMenuTable.User_ID,
TblContractInfo_SubMenuTable.Contract_Number,
TblContractInfo_SubMenuTable.Transaction_Type,
TblContractInfo_SubMenuTable.Notes,
TblContractInfo_SubMenuTable.Num_Checks_Trans,
TblMasterTrans.Date_Opened
from TblContractInfo_SubMenuTable ,tblMasterTrans
WHERE Transaction_Type = 'FollowUp'
And TblContractInfo_SubMenuTable.Task_Number =
tblMasterTrans.Task_Number
And TblMasterTrans.Date_Opened BETWEEN #form.StartDate# AND
#form.EndDate#
ORDER BY TblMasterTrans.Date_Opened ASC,
TblContractInfo_SubMenuTable.User_id ASC
</cfquery>
</cftransaction>Any help would be greatly appreciated.
Ok, why are you using a <cftransaction...> around a
single select query?
It should be unnecessary.
This is probably not helpful to your original question. There
is
nothing obviously wrong with your query at least to my glance
through.
Thus this important question, the one without which you are
unlikely to
get any helpful advice, "How does this not work?" Error
Messages? No
Data? Wrong Data? Serves you coffee instead of tea?
It would also probably be helpful to know how your date data
is
represented in the database and the form controls, depending
on what
your difficulties are. -
No Data in Reports Details in Custom date range
Hello, iTunes U Public Site Manager Admins.
As the iTunes U Public Site Manager admin, I've been trying to access our institution's iTunes U Reports Details for a couple of days. (I send a monthly report of usage to our course/collection contributors.) When I custom the date range, under Details, there is zero entry; "No data available in table" message is shown.
This feature had been working well since Apple iTunes U added this enhancement on August 13, 2013. The report Details showed the exact stats for Browse, Subscribe, Download, Stream, and Enclosure for each course/collection in the custom date range.
Now under "Details", the data is shown only when the date range is Last 30 Days. It shows no data in custom date range when the Calendar is used to select a Start Date and End Date.
Has anyone else noticed this problem?
Thanks.
Q. WangErik.
I used your suggestion and it worked very well. This is how I did it.
Export the range of data that includes Feb. 1-Feb. 28, 2014 as .tsv file.
Open that file in Excel.
Add a blank column next to the Date column. Use function =Month() to just extract the month into the new column. Fill down the whole column. Then copy and paste special (value) into the same column (I have over 26,000 rows of data in the file.) Converting to Value will allow for the next step of PivotTable.
Create a PivotTable for the 26,000 rows of data. Use Month as the Report filter, iTunes_ID as the Row Labels, Select Browse, Subscribe, etc. as the Sum Values. (The result is a summary table with about 200 rows.)
I then do a Vlookup to my premade Master file to add Category (course, collection, resources) and Instructor Name to each of the 200 rows.
That will do it for my monthly report.
Thanks for your tip again. I did not know the .tsv file would have DATE for each item.
Sincerely,
Q. Wang -
Devloped an ALV report for daily cash receipts for selected date range
hi,
how to devlop an ALV report for daily cash receipts for selected date range.for this report what are the tables and fields we have to use.what is the selectionscreen&what is logic.give me sample report.Hi,
You can develop simple reports using Report Painter.
You may be also interested in:
Check report SAPMF05A for credit memo
See the following Std reports on Payment Advices execute the Tcodes:
S_ALR_87009888
S_ALR_87009889
S_ALR_87009890
S_ALR_87009891
S_ALR_87009892
S_ALR_87009893
S_ALR_87009978
S_ALR_87009979
S_ALR_87009980
S_ALR_87009981
S_ALR_87009982
S_ALR_87009983
S_ALR_87010056
S_ALR_87010057
S_ALR_87010058
S_ALR_87010059
S_ALR_87010060
S_ALR_87010061
S_ALR_87010066
S_ALR_87010067
S_ALR_87012106
S_ALR_87012107
S_ALR_87012108
S_ALR_87012109
S_ALR_87012110
S_ALR_87012111
S_ALR_87012116
S_ALR_87012117
S_ALR_87012200
S_ALR_87012201
S_ALR_87012202
S_ALR_870122
S_ALR_87012204
S_ALR_87012205
S_ALR_87012350
S_ALR_87012351
S_ALR_87012352
S_ALR_87012353
S_ALR_87012354
S_ALR_87012355
sample ALV report:
tables:
marav. "Table MARA and table MAKT
Data to be displayed in ALV
Using the following syntax, REUSE_ALV_FIELDCATALOG_MERGE can auto-
matically determine the fieldstructure from this source program
Data:
begin of imat occurs 100,
matnr like marav-matnr, "Material number
maktx like marav-maktx, "Material short text
matkl like marav-matkl, "Material group (so you can test to make
" intermediate sums)
ntgew like marav-ntgew, "Net weight, numeric field (so you can test to
"make sums)
gewei like marav-gewei, "weight unit (just to be complete)
end of imat.
Other data needed
field to store report name
data i_repid like sy-repid.
field to check table length
data i_lines like sy-tabix.
Data for ALV display
TYPE-POOLS: SLIS.
data int_fcat type SLIS_T_FIELDCAT_ALV.
select-options:
s_matnr for marav-matnr matchcode object MAT1.
start-of-selection.
read data into table imat
select * from marav
into corresponding fields of table imat
where
matnr in s_matnr.
end-of-selection.
Now, we start with ALV
To use ALV, we need a DDIC-structure or a thing called Fieldcatalogue.
The fieldcatalouge can be generated by FUNCTION
'REUSE_ALV_FIELDCATALOG_MERGE' from an internal table from any
report source, including this report.
The only problem one might have is that the report and table names
need to be in capital letters. (I had it )
Store report name
i_repid = sy-repid.
Create Fieldcatalogue from internal table
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = sy-repid
I_INTERNAL_TABNAME = 'IMAT' "capital letters!
I_INCLNAME = sy-repid
CHANGING
CT_FIELDCAT = int_fcat
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = i_repid
I_STRUCTURE_NAME = 'marav'
I_DEFAULT = 'X'
I_SAVE = 'A'
TABLES
T_OUTTAB = imat.
IF SY-SUBRC <> 0.
WRITE: 'SY-SUBRC: ', SY-SUBRC .
ENDIF.
Hope this will help.
Regards,
Naveen. -
How to create a date range in Web Application Designer
I am using 3.1 version of Web App Designer. I need to create a report with date ranges. I can get one date to work but not two (I need a start date and end Date). My Query has 0CALMONTH with a variable for Interval. When I select it as a dropdown (??) in Web App Designer, I only get one date prompt in web app designer.
Any suggestions??
Thanks
KristenHi Kristen,
I'm sorry i'm not coming to solve your problem,but for the trouble I have had,and I want to create a date picker in Web Application Designer,so if you have solved the problem ,please email to me? [email protected] ,thx very much!
best regards
zegion chan -
Support date range and as of date in Universe
Hi,
I have some questions on Universe design best practices. Can you please help ?
We are using BO4 SP7 and UDT for universe design.
Little bit on our schema: snow flake schema with multiple fact tables. Most of our table are 'Pure Type 6' dimension tables in which start date and end date are used to track historical data. We also have date dimension table. We want to support both 'As of date' and custom 'date range' type reporting.
Out typical use cases are like
1. All items As of date
2. All items between dates etc.
How can we model it in the Universe ?
1. We can not join every dimension with date_d dimension. So we have decided to put default conditions at Folder level. Our typical date conditions as below.
date_d.end_full_date_utc between diminetion1_d.start_date AND diminetion1_d.end_date
But problem is, table condition are not always applied. If we have A, B and C folders and if I create report by using objects from A and C then non of the condition applied to B appears in the query. This is problem for us.
2. Other approach we thought is to define start and end prompt and define a restriction condition for each and every table.
diminetion1_d.start_date > [start_date_prompt] AND diminetion1_d.end_date < [end_date_prompt]
We thought it will be too munch work as we have more than 150 tables and also 2 prompts will always appear, even of as of date, which may not look good.
3. Is there a way apply to apply these date conditions at the individual table level so that they will appear in Query when ever the table is involved in the join path ?
3. What is the best way to handle this kind of requirements, please suggest ?
ThanksHi,
I have some questions on Universe design best practices. Can you please help ?
We are using BO4 SP7 and UDT for universe design.
Little bit on our schema: snow flake schema with multiple fact tables. Most of our table are 'Pure Type 6' dimension tables in which start date and end date are used to track historical data. We also have date dimension table. We want to support both 'As of date' and custom 'date range' type reporting.
Out typical use cases are like
1. All items As of date
2. All items between dates etc.
How can we model it in the Universe ?
1. We can not join every dimension with date_d dimension. So we have decided to put default conditions at Folder level. Our typical date conditions as below.
date_d.end_full_date_utc between diminetion1_d.start_date AND diminetion1_d.end_date
But problem is, table condition are not always applied. If we have A, B and C folders and if I create report by using objects from A and C then non of the condition applied to B appears in the query. This is problem for us.
2. Other approach we thought is to define start and end prompt and define a restriction condition for each and every table.
diminetion1_d.start_date > [start_date_prompt] AND diminetion1_d.end_date < [end_date_prompt]
We thought it will be too munch work as we have more than 150 tables and also 2 prompts will always appear, even of as of date, which may not look good.
3. Is there a way apply to apply these date conditions at the individual table level so that they will appear in Query when ever the table is involved in the join path ?
3. What is the best way to handle this kind of requirements, please suggest ?
Thanks -
Date Range according to Financial year-end
Hi
I'm building this Discoverer report and one of my parameters is a LoV date field, which gives me a date range from Jan to Dec each year. Now my problem is, I want my date range to be as per our Financial Year End, which is from 01-Oct-03 to 30-Sep-04.
You'd find "<All>" amongst the range. This "All" currently indicates date between Jan 2003 - Dec 2003. Now I need to write a query/trigger that will put my date range to be between 01-Oct-02 to 30-Sep-03 recurring automatically after each Financial year-end.
ThanksHi,
Although I haven't tried it, you should be able to use a combination of hierarchies and alternative sorts to accomplish this.
How have you created your list of values? If your LOV is a list of months and years e.g. JAN-2003, FEB-2003 etc, you can create a alternative sort which will make OCTOBER the first month of the year - i.e. with value 1, and NOVEMBER = 2 and so on...
Sorry this is a bit vague. I will try and test tomorrow and see if it works, but this should be enough to give you an idea of how to progress. -
Count days in a month for a date range
i am trying to find no. of days between 2 Date Ranges for a list of Ids. i used the logic in the below link:
count days of the month
My query is giving duplicates since, I have list of Ids.
Doctor_ID Patient_ID ARRIVE_DT_TM DISCH_DT_TM
755722 42972229 10/18/2012 7:50 3/14/2013 20:45
763305 42972232 1/7/2013 20:27 3/15/2013 19:15
25391509 42972298 2/4/2013 22:45 3/8/2013 22:03
746779 42972331 1/4/2013 23:00 3/26/2013 21:50
763305 42972338 3/4/2013 22:19 3/6/2013 19:35
763305 42972411 11/4/2013 22:32 3/29/2013 17:30
I am looking for query to give me for Patient_ID = 42972229
MONTH COUNT_DAYS
201210 14
201211 30
201212 31
201301 31
201302 28
201303 14
I am running the following code and it loops through the months and gives duplicates when I remove where Patient_id IN (42972229)
select
Doctor_ID
, Patient_ID
, AR_DTTM
, DSC_DTTM
, TO_CHAR(ADD_MONTHS(TRUNC(date1, 'MONTH'), LEVEL - 1), 'YYYY MM') MONTHS_BET
, (LEAST(date2, ADD_MONTHS(TRUNC(date1, 'MONTH') - 1, LEVEL)) - GREATEST(date1, ADD_MONTHS(TRUNC(date1, 'MONTH'), LEVEL - 1)))+ 1 AS DAYSCOUNT
from (select
Doctor_ID
, Patient_ID
, ARRIVE_DT_TM AR_DTTM
, DISCH_DT_TM DSC_DTTM
,TRUNC(ARRIVE_DT_TM,'DDD') AS date1
,TRUNC(DISCH_DT_TM,'DDD') AS date2
from temp where Patient_id IN (42972229)
CONNECT BY LEVEL <= MONTHS_BETWEEN(TRUNC(date2, 'MONTH'), TRUNC(date1, 'MONTH')) + 1
Please help!Hi,
ASTRA_007 wrote:
Results I would like to see are:
Doctor_ID Patient_ID ARRIVE_DT_TM DISCH_DT_TM Month CountofDays
755722 42972229 10/18/2012 7:50 3/14/2013 20:45 2012 10 14
755722 42972229 10/18/2012 7:50 3/14/2013 20:45 2012 11 30
755722 42972229 10/18/2012 7:50 3/14/2013 20:45 2012 12 31
755722 42972229 10/18/2012 7:50 3/14/2013 20:45 2013 01 31
755722 42972229 10/18/2012 7:50 3/14/2013 20:45 2013 02 28
755722 42972229 10/18/2012 7:50 3/14/2013 20:45 2013 03 14
763305 42972232 1/7/2013 20:27 3/15/2013 19:15 2013 01 25
763305 42972232 1/7/2013 20:27 3/15/2013 19:15 2013 02 28
763305 42972232 1/7/2013 20:27 3/15/2013 19:15 2013 03 15
and so on...So each row represents a patient-month, and you want to display several columns from the temp table on each output row. In that case, include all those columns in both the SELECT and GROUP BY clauses, like this:
WITH universe AS
SELECT *
FROM temp
-- WHERE patient_id IN (42972229)
, date_range AS
SELECT TRUNC (MIN (arrive_dt_tm)) AS first_date
, TRUNC (MAX (disch_dt_tm)) AS last_date
FROM universe
, all_dates AS
SELECT first_date + LEVEL - 1 AS a_date
FROM date_range
CONNECT BY LEVEL <= (last_date + 1) - first_date
SELECT u.doctor_id
, u.patient_id
, u.arrive_dt_tm
, u.disch_dt_tm
, TO_CHAR ( TRUNC (a.a_date, 'MONTH')
, 'YYYY MM'
) AS month
, COUNT (*) AS count_days
FROM all_dates a
JOIN universe u ON a.a_date BETWEEN TRUNC (u.arrive_dt_tm)
AND u.disch_dt_tm
GROUP BY u.doctor_id
, u.patient_id
, u.arrive_dt_tm
, u.disch_dt_tm
, TRUNC (a.a_date, 'MONTH')
ORDER BY u.patient_id
, TRUNC (a.a_date, 'MONTH')
;Output from your sample data (with no filtering):
`DOCTOR_ID PATIENT_ID ARRIVE_DT_TM DISCH_DT_TM MONTH COUNT_DAYS
755722 42972229 10/18/2012 7:50 3/14/2013 20:45 2012 10 14
755722 42972229 10/18/2012 7:50 3/14/2013 20:45 2012 11 30
755722 42972229 10/18/2012 7:50 3/14/2013 20:45 2012 12 31
755722 42972229 10/18/2012 7:50 3/14/2013 20:45 2013 01 31
755722 42972229 10/18/2012 7:50 3/14/2013 20:45 2013 02 28
755722 42972229 10/18/2012 7:50 3/14/2013 20:45 2013 03 14
763305 42972232 1/7/2013 20:27 3/15/2013 19:15 2013 01 25
763305 42972232 1/7/2013 20:27 3/15/2013 19:15 2013 02 28
763305 42972232 1/7/2013 20:27 3/15/2013 19:15 2013 03 15
25391509 42972298 2/4/2013 22:45 3/8/2013 22:3 2013 02 25
25391509 42972298 2/4/2013 22:45 3/8/2013 22:3 2013 03 8
746779 42972331 1/4/2013 23:0 3/26/2013 21:50 2013 01 28
746779 42972331 1/4/2013 23:0 3/26/2013 21:50 2013 02 28
746779 42972331 1/4/2013 23:0 3/26/2013 21:50 2013 03 26
763305 42972338 3/4/2013 22:19 3/6/2013 19:35 2013 03 3
In the end the objective is to count the no. of days in each month between the arrival and discharge dates by Physician and for his/her patients.Then is the output above really what you want? Say you're interested in physician 763305. That physician had 18-patient days in March, 2013, but the output doesn't make it clear.
I ran your query, it works great but I have a long list of patients for whom I have to run these counts.the query above includes all patient_ids.
That's a separate problem, to be solved in the first sub-query, universe. The rest of the query will be unchanged.
How will you know which patients to include? If you can derive the list from temp itself, just use a WHERE clause in universe. If you need to look at other tables, join them in universe, or use them in sub-queries in universe, or both.
For exmple, if you decide that the list of patient_ids has no pattern, and that you'll need to store their ids in a separate table (perhaps a global temporary table), then universe might be:
WITH universe AS
SELECT t.* -- or list columns needed
FROM temp t
JOIN patient_ids_to_include p
ON p.patient_id = t.patient_id
) ...The rest of the query can be the same as above.
If a same patient is admitted again then Patient_ID will be different no matter when readmitted.Are you saying that patient_id identifies a visit, not a patient, and that the same person is assigned a different patient_id every time that person is admitted?
For
INSERT INTO temp (doctor_id, patient_id, arrive_dt_tm, disch_dt_tm)
VALUES ( 755722
, 42972229
, TO_DATE ('03/14/2013 23:00', 'MM/DD/YYYY HH24:MI')
, TO_DATE ('04/01/2013 12:00', 'MM/DD/YYYY HH24:MI')
First the Patient ID will be different from the earlier admission. Second the results will show like:
Doctor_ID Patient_ID ARRIVE_DT_TM DISCH_DT_TM Month CountofDays
755722 42972229 3/14/2013 23:00 4/1/2013 12:00 2012 03 14
755722 42972229 3/14/2013 23:00 4/1/2013 12:00 2012 04 1Are you saying that temp.patient_id is unique, and so the situation is impossible?
Edited by: Frank Kulash on May 7, 2013 10:23 AM -
Hi
I'm building this Discoverer report and one of my parameters is a LoV date field, which gives me a date range from Jan to Dec each year. Now my problem is, I want my date range to be as per our Financial Year End, which is from 01-Oct-03 to 30-Sep-04.
You'd find "<All>" amongst the range. This "All" currently indicates date between Jan 2003 - Dec 2003. Now I need to write a query/trigger that will put my date range to be between 01-Oct-02 to 30-Sep-03 recurring automatically after each Financial year-end.
ThanksHi,
You might want to post the Q on Discoverer Forum also
Discoverer
Navneet.
Maybe you are looking for
-
Unable to capture the value of vbrk-vbeln value from VF02
Hi All, am printing form from VF02 ,,,once i execute the VF02 , and select Billing Document -> Issue Output to option .., my printi program gets triggered ,......, but in my print program am unable to capture the value of VBRK-VBELN which i have ent
-
How do I use the skin for a video object in one of my slides?
I put an video object place holder in one of my question masters, and when I insert a video into the actual project slide, it will not play with a skin. I can set it up to play automatically, but when I add a skin to it, the functions of the skin wo
-
I dropped my iPod touch 4 generation on my kitchen tile and it shattered, like chunks of the screen are coming off. But everything works and I've had it for a 1 ½ years now. I don't have the extended warranty or anything but can I get it replaced som
-
My frontier email will not let me sign on. I get a message telling me to go to settings> safari > and turn off " private browsing." How do I find " private browsing" under safari in the settings area?
-
HiI keep reading about updating My Zen Micro (the older version) on XP so it will work on Windows Vista. I don't understand what this means so I was wondering if anyone could point me to a helpful post. I put the software CD in and it does nothing on