LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous (more recent) messageNext (less recent) messagePrevious (more recent) in topicNext (less recent) in topicPrevious (more recent) by same authorNext (less recent) by same authorPrevious page (March 2012, week 4)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:   Fri, 23 Mar 2012 11:39:51 -0500
Reply-To:   Joe Matise <snoopy369@GMAIL.COM>
Sender:   "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:   Joe Matise <snoopy369@GMAIL.COM>
Subject:   Re: Strange problem with dates !
Comments:   To: Irin later <irinfigvam@yahoo.com>
In-Reply-To:   <1332519916.81971.YahooMailNeo@web39406.mail.mud.yahoo.com>
Content-Type:   text/plain; charset=ISO-8859-1

That should work fine. Are you multiplying LOSp by 86400 and/or converting it to a datetime? What is the actual error in your results?

-Joe

On Fri, Mar 23, 2012 at 11:25 AM, Irin later <irinfigvam@yahoo.com> wrote:

> Thank you Joe. Yes, last statement is fixed already after Yevgeniy post. > > > > I am still strugging with calciulation in SELECT statement , however. > > I wonder if PROC SQL allow group of the same Parenthesis like I used > in SELECT statement? > > (a2.ServiceDateFrom-(a1.AdmitDate + a1.LOSp) ) as TimeFrame > > *From:* Joe Matise <snoopy369@GMAIL.COM> > *To:* SAS-L@LISTSERV.UGA.EDU > *Sent:* Friday, March 23, 2012 12:07 PM > > *Subject:* Re: Strange problem with dates ! > > proc sql; > select * from sashelp.class > where > age = 15 or age = 13 and sex='M'; > quit; > > Your two ORs should be in a ( ) group together, otherwise the AND is only > applied to the second OR group - this is like + and *. > > 6+5*3 > is 6+15=21 not 11*3=33. > > -Joe > > On Fri, Mar 23, 2012 at 10:57 AM, Irin later <irinfigvam@yahoo.com> wrote: > > > Joe, > > > > LOSp is days . I multiply by 86400 but it did not resolve the problem. > > > > Besides how it explained the fact that the very last statement had no > > effect ...since datatype are identical? > > > > a2.ServiceDateFrom >= a1.AdmitDate > > > > *From:* Joe Matise <snoopy369@gmail.com> > > *To:* Irin later <irinfigvam@yahoo.com> > > *Cc:* SAS-L@listserv.uga.edu > > *Sent:* Friday, March 23, 2012 11:51 AM > > *Subject:* Re: Strange problem with dates ! > > > > > You need to be specific with what didn't work and how :) What is LOSp? > > It's just shown as number. Is it days, or seconds based? If it's Days > > based then you need to deal with the fact that your Admit Date and > Service > > Date From are DATETIME (seconds, not days). You'd need either to convert > > LOSp to DATETIME, or multiply it by 86400 (# of seconds in a day), if it > is > > indeed # of days. > > > > -Joe > > > > On Fri, Mar 23, 2012 at 10:44 AM, Irin later <irinfigvam@yahoo.com> > wrote: > > > > Actually I used the following logic: > > > > Proc SQL; > > Create table Win14Time as > > select distinct > > a1.MemberPid > > ,a1.HospDischDate > > ,a2.claimid as OfficeClaimid > > ,a2.ServiceDateFrom as OfficeVisitDate > > ,a1.AdmitDate as AdmitHospt > > ,a1.LOSp > > ,a1.isPCP > > ,a1.PrimaryDiagnosisCode as HosptPrimDiag > > ,a2.PrimaryDiagnosisCode as OfficeVisitPrimDiag > > ,a1.EventID > > ,(a2.ServiceDateFrom-(a1.AdmitDate + a1.LOSp)) as TimeFrame > > FROM HospDischNoDup a1 > > INNER JOIN HosptAC_VisitNodup a2 on a1.memberPid=a2.memberPid > > where > > (year(datepart(a2.ServiceDateFrom))=2010 and > > month(datepart(a2.ServiceDateFrom))in (7,8,9,10,11,12)) > > or > > (year(datepart(a2.ServiceDateFrom))=2011 and > > month(datepart(a2.ServiceDateFrom))in (1,2,3,4,5,6)) > > and a2.ServiceDateFrom >= a1.AdmitDate; > > quit; > > > > However , generated TimeFrame filed (number of day ) looks incorrect. > > > > Besides, the very last statement "a2.ServiceDateFrom >= a1.AdmitDate" > > does not work at all, does not restrict anything!!!!! > > > > this is my Proc Contents . Perheps, I need to convert dates first? How > can > > I resolve it: > > > > # Variable Type Len > > Format Informat Label > > 6 AdmitHospt Num 8 DATETIME > > 22.3 DATETIME22.3 AdmitDate > > 11 EventId Char 50 > > $50. $50. EventId > > 3 HospDischDate Num 8 > > 9 HosptPrimDiag Char 8 > > $8. $8. PrimaryDiagnosisCode > > 8 IsPCP Char > > 1 $1. $1. IsPCP > > 7 LOSp Num 8 > > 11. 11. LOSp > > 1 MemberId Num 8 > > 11. 11. MemberId > > 2 MemberNHPid Char 15 > > $15. $15. MemberNHPid > > 4 OfficeClaimid Char 20 > > $20. $20. ClaimId > > 5 OfficeVisitDate Num 8 DATETIME > > 22.3 DATETIME22.3 ServiceDateFrom > > 10 OfficeVisitPrimDiag Char 8 > > $8. $8. PrimaryDiagnosisCode > > 12 TimeFrame Num 8 > > > > Something is definetely wrong if a2.ServiceDateFrom >= a1.AdmitDate does > > not work!!!!! > > > > What I am doing wrong? > > Could you please give me a hand? Thank you in advance, > > > > Irin > > > > > > > > > > > > >


Back to: Top of message | Previous page | Main SAS-L page