Desktop productivity for business analysts and programmers

Select Case expression in SAS EG 5.1 Expression builder

Reply
Frequent Contributor
Posts: 86

Select Case expression in SAS EG 5.1 Expression builder

Hi Forum, I'm out of ideas on this one. I've tried everything I can find but I'm still getting the error as shown on the attached file ... What can I do to add a new column with various conditions using the expression builder? Thanks

case_Expr_Error.gif

Attachment
Grand Advisor
Posts: 17,427

Re: Select Case expression in SAS EG 5.1 Expression builder

The word Source shouldn't be in quotes AFAIK

Frequent Contributor
Posts: 86

Re: Select Case expression in SAS EG 5.1 Expression builder

Thanks Reeza, but I've tried it with, without you name it...

Grand Advisor
Posts: 17,427

Re: Select Case expression in SAS EG 5.1 Expression builder

Couple of things

1. In SAS you refer to dates as '01Mar2009'd instead of 2009-03-01

2. <> is not a valid operator in SAS, it gets interpreted as max, when you probably mean NE, replace it with NE

3. Remove the as "Source" from the code. Notice the bracket after the calculation and the "as calculation" SAS is automatically naming it calculation.

I'm not sure how you're creating the case statement, it may be more helpful to show a screenshot of that.

Hope some of the above helpful.

Frequent Contributor
Posts: 86

Re: Select Case expression in SAS EG 5.1 Expression builder

Thanks Reeza,

Now my script is;

CASE      WHEN t1.Date_Created < '01Mar2009'd THEN 'Infield Sales'


               WHEN t1.SalesRepID IS NOT NULL THEN 'Infield sales'


               WHEN t1.CreatedByUserID = 1 AND t1.Date_Created >= '01Mar2009d' THEN 'Online'


               WHEN t1.CreatedByUserID NE 1 THEN 'CallCentre'


ELSE 'Other'


            END

The only error I'm getting is the '<' comparison is on different data types.

I've converted the Original 'Date Time' format to 'DDMMYYN8' so it seems I now have an issue with the date Formats?

Thanks for your help so far Reeza, I think you've nearly got it !

Grand Advisor
Posts: 17,427

Re: Select Case expression in SAS EG 5.1 Expression builder

If your original variable in the database is date time you'll need to convert it to a date variable first or wrap all the date_created variables in the datepart function to get just the date portion. Datepart(t1.date_created)

Frequent Contributor
Posts: 86

Re: Select Case expression in SAS EG 5.1 Expression builder

Thanks Reeza, I had done the DATEPART bit but then saw that I had written the second date with the apostrophe after the 'd' instead of in front of it.

Now it works fine. Thanks heaps :  >

Ask a Question
Discussion stats
  • 6 replies
  • 454 views
  • 1 like
  • 2 in conversation