There are tons of papers and documentations on both these issues. The best way to figure out what to use is learning by doing.
Short: if you need for some reason (or are more familiar with) native RDBMS syntax, you need to use explicit pass thru. Libname access (implicit pass-thru) would work for most scenarios, and lets you be more flexible in what data source you are using.
For standard cross tabular reports TABULATE would be a normal choice. If you need more customization with layout, calculated values, conditional processing etc, REPORT is the tool.
/Linus
Data never sleeps