Précédent   Forum des professionnels en informatique > Dotnet > Accès aux données > Linq
Linq Forum d'entraide sur la manipulation de données avec Linq
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/12/2011, 18h11   #1
Membre confirmé
 
Inscription : juillet 2004
Messages : 727
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 727
Points : 216
Points : 216
Par défaut [C#] Requête linq avec groupby et jointure

Salut a tous,

Je n'arrive pas à traduire une requête sql en linq.
Je sais faire une jointure en linq, mais après je n'arrive pas à faire le count.

Code sql :
1
2
3
4
SELECT a.id, a.libelle, COUNT(*) nb
FROM  a
JOIN b ON a.Id = b.IdEtrangere 
GROUP BY a.id, a.libelle

Merci de m'aider.
Oberown est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 18h22   #2
Membre régulier
 
Homme Anas
Inscription : avril 2010
Messages : 147
Détails du profil
Informations personnelles :
Nom : Homme Anas
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : avril 2010
Messages : 147
Points : 70
Points : 70
Bonjour,

Une petite recherche sur le net :
Code :
1
2
3
4
5
6
 
from p in context.ParentTable
join c in context.ChildTable on p.ParentId equals c.ChildParentId into j1
from j2 in j1.DefaultIfEmpty()
group j2 by p.ParentId into grouped
select new { ParentId = grouped.Key, Count = grouped.Count(t=>t.ChildId != null) }
farfouch00 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/01/2012, 08h11   #3
Nouveau Membre du Club
 
Homme Alex Hu
Développeur Java
Inscription : août 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Homme Alex Hu
Localisation : Chine

Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : août 2011
Messages : 15
Points : 25
Points : 25
Bonjour,

Tu as envie de deux colonnes comme key, pas une colonne comme normal.
D'abord, tu peux sélectionner tous les données de la table a, après sélectionnes les données distinctes. En suite, joins la table b.
Essaye le code suivant:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
var q = from m in
            (from t1 in a
             select new
             {
                 t1.id,
                 t1.libelle
             }).Distinct()
        join t2 in b on m.id equals t2.IdEtrangere
        into d
        select new
        {
            m.id,
            m.libelle,
            np = d.Count()
        };
Alex Hu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h33.


 
 
 
 
Partenaires

Hébergement Web