Linq groupe par sur plusieurs table et inner join
J'ai une requête SQL et je tiens à le réécrire par linq. Cette commande sql ne rejoint deux de la table et de faire un groupe par sur eux. Le problème est dans le groupe. Quand j'ai utiliser group by sur une table, tout est ok et linq commant renvoie le même résultat que la commande sql. Mais quand je veux rejoindre les deux tableau, puis de les regrouper par H. Ucet (par exemple) ensuite, il retourne autre résultat que ma commande sql. Le résultat est le même que lors de l'utilisation d'une Jointure Gauche, mais je veux défaut jointure interne.
C'est la commande sql:
string dotazBankUcty = @"SELECT
H.UCET,
SUM(H.MD) AS MD,
SUM(H.DAL) AS DAL ,
SUM(H.MD_M) AS MD_M,
SUM(H.DAL_ENA) DAL_M,
MAX(UBUC.KOD) AS KOD
FROM ACCOUNT H
inner join UBU on H.UCET = UBU.UCET GROUP BY H.UCET";
J'essaie de réécrire par cette linq commande.
var accountQuery = new XPQuery<ACCOUNT >(CoreHelper.DataSession);
var ubuQuery = new XPQuery<UBU>(CoreHelper.DataSession);
var resultBankyUcty = (from h in accountQuery
join u in ubuQuery on h.CompoundKey1.UCET equals u.UCET
group new { h, u } by new { h.CompoundKey1.UCET } into gUcty
select new
{
Ucet = gUcty.Key.UCET,
MD = gUcty.Sum(k => k.h.MD),
DAL = gUcty.Sum(k => k.h.DAL),
MD_M = gUcty.Sum(k => k.h.MDM),
DAL_M = gUcty.Sum(k => k.h.DALM),
KOD = gUcty.Max(k => k.u.KOD)
});
Quelqu'un peut m'aider ? Je ne peux pas voir une erreur.
Ne semble pas si...
Jointure interne est essentiellement left join avec les lignes filtrées où dans votre cas
u
est null. Donc la plus simple solution serait d'ajouter where u != null
condition.JOINTURE INTERNE ne peut pas être utilisé sur Xpo couche, je dois utiliser une JOINTURE EXTERNE GAUCHE et OÙ la != null
OriginalL'auteur mik3s | 2013-10-16
Vous devez vous connecter pour publier un commentaire.
Pouvez-vous fournir des informations de la table et le schéma ? L'utilisation de ce post votre schéma de la table sqlfiddle.com/#!3
JOINTURE INTERNE ne peut pas être utilisé sur Xpo couche, je dois utiliser une JOINTURE EXTERNE GAUCHE et OÙ la != null
OriginalL'auteur Suraj Singh