Tout d'abord, voici une image de la partie concernée de mon schéma de base de données :
J'ai plusieurs requêtes conceptuelles de complexité croissante. Actuellement, je les réalise à l'aide d'une série de requêtes SQL (c'est-à-dire de nombreux allers-retours entre le code C# et le serveur SQL), et j'aimerais trouver un moyen de les obtenir toutes en une seule requête, mais cela dépasse un peu mes compétences personnelles en TSQL/LINQ. Voici les requêtes que j'essaie de trouver comment écrire :
- Une requête pour retourner l'enregistrement le plus récent du plan de travail pour chaque utilisateur (pas pour un utilisateur particulier - pour tous les utilisateurs).
- Une requête pour retourner le plan de travail le plus récent pour chacun d'un ensemble spécifié d'utilisateurs (c'est-à-dire que j'ai une liste d'identifiants d'utilisateurs sur le client (c'est-à-dire dans un tableau).
- Une requête pour récupérer tous les enregistrements de projet "actuels" pour chacun d'un ensemble spécifié d'utilisateurs. "Actuel" signifie que l'enregistrement du plan de travail auquel le projet est rattaché est l'enregistrement du plan de travail le plus récent pour l'utilisateur associé.
À titre de référence, j'utilise SQL Server 2005 et LINQ to SQL en C# et je serais heureux de trouver une solution basée sur une procédure stockée ou un code LINQ direct permettant de réaliser chaque requête.