|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 !|
|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?
On Fri, Mar 23, 2012 at 11:25 AM, Irin later <firstname.lastname@example.org> 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
> age = 15 or age = 13 and sex='M';
> Your two ORs should be in a ( ) group together, otherwise the AND is only
> applied to the second OR group - this is like + and *.
> is 6+15=21 not 11*3=33.
> On Fri, Mar 23, 2012 at 10:57 AM, Irin later <email@example.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 <firstname.lastname@example.org>
> > *To:* Irin later <email@example.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
> > 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
> > indeed # of days.
> > -Joe
> > On Fri, Mar 23, 2012 at 10:44 AM, Irin later <firstname.lastname@example.org>
> > 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
> > 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