Often with the applications we build on sharepoint it would be much easier to analyse the data if we could do a straightforward SQL join between two lists, just as you would with two tables in SQL, but, alas, this is not catered for out of the box. I have managed to do it with a DVWP and data sources in SharePoint Designer but this was only really useful on simple and small amounts of data. So I was quite ecited by this project I have stumbled across on CodePlex yesterday - SLAM. It looks to take the list data in sharepoint and copy it out to SQL so that you can then run standard SQL queries against it. There seems to be some management built in as well, so very promising. I haven't had a chance to try it out yet, but will certainly give it a go next time we need to do some reporting on SharePoint list data.
Quote from their site:
Most developers who have used SharePoint as an application development framework have run into the realization that SharePoint is NOT a relational database. In fact, the accepted wisdom is if you need relational tables, use ASP.NET/SQL straight-up, not SharePoint.
Enter SharePoint List Association Manager (SLAM). In short it allows you to define relationships (one to one, one to many, many to many) between SharePoint lists (or Content Types) and then leverage those relationships in webparts or custom field types using familiar and straight forward SQL queries.
Find it on Codeplex at http://www.codeplex.com/SLAM.