I've been meaning to post this, Joe's latest book Joe Celko's Thinking in Sets: Auxiliary, Temporal, and Virtual Tables in SQL is available on Amazon for about $24. Here's an excerpt of the excerpt:
"Joe Celko has looked deep into the code of novice SQL programmers and found a consistent and troubling pattern. These programmers have not changed their approach from writing code for a procedural language, like C, to a declarative language--which is what SQL is. As a result they are not fully using the power and capability inherent in SQL and that translates into writing more code than they need to write, more complex code than is needed, and ultimately lower productivity."
Haven't read it yet, just ordered my copy, but usually he has some pretty good ideas about how to solve problems. Hopefully this is more than a multi page rant!