Have you heard the expression “Talk Turkey”? Well then, what better (tongue-in-cheek) thing to do around the Thanksgiving holiday, than talk some turkey using SAS Graphs! 😉 I don’t usually decorate my graphs with images and pictures (they typically ma…
NOTE: Clean Your Cubes
It’s not spring-time, but it’s still worth giving a thought to the cleanliness of your environment, for the benefit of reducing complexity and of reducing space usage. Angela Hall posted a great article about Cleaner OLAP Cube Physical Folder Structu…
Coding For All – Competition for the Family
There’s a debate in the UK, and many other countries around the globe, regarding the content of the IT curriculum (or, ICT as it’s known in the UK). Speaking from experience, my kids have been taught how to use Microsoft Office products, but they hav…
NESUG 25 In Review
I had a great time at NESUG 25! Great networking opportunities, excellent papers/presentations, and a tremendous amount of support from SAS itself. Papers As always, there were a number of terrific papers. The full proceedings are now posted. I w…
Object-oriented access to SAS data in a custom task
Most custom tasks need to access SAS data in some way. Since custom tasks are built using Microsoft .NET, and the .NET Framework is object-oriented, it would be convenient if we had an object-oriented method for navigating SAS data sources. That was the thinking behind the “SasData”-namespace classes within the […]
SAS 9.3 macro SQL trick
Suppose you need to create a numbered series of macro variables, one macro variable per row, from an SQL query. Suppose you magically know in advance that a given WHERE clause returns, say, 123 rows. No problem! proc sql; select customer_name into :…