PDA

View Full Version : گروه بندی در Linq در جداول الحاق شده



kastakoorta
دوشنبه 29 خرداد 1391, 11:38 صبح
سلام دوستان ، چند روزیه که یه Query خیلی تو Linq اذیتم میکنه . خروجی مورد نیاز من یه چیزی شبیه زیر است که کدش در SQL درست هست.

SELECT Tbl_JobUnits.JUID, Tbl_JobUnits.JUTitle, SUM(Tbl_FishHoghoghi.FHoghogheKhales) AS TotalHoghoogheKhales, SUM(Tbl_FishHoghoghi.FEzafeKar)
AS TotalEzafeKar, SUM(Tbl_PersonAhkams.AHKMountHoghoogh) AS TotalMountHoghoogh
FROM Tbl_JobUnits INNER JOIN
Tbl_PersonAhkams ON Tbl_JobUnits.JUID = Tbl_PersonAhkams.FK_JUID INNER JOIN
Tbl_FishHoghoghi ON Tbl_PersonAhkams.AHKID = Tbl_FishHoghoghi.FK_AHKID
GROUP BY Tbl_JobUnits.JUID, Tbl_JobUnits.JUTitle
3 جدول نقش دارن ، جدول واحدهای کاری ، جدول احکام پرسنل و جدول فیش حقوقی .
هر کار کردم تو Linq در نمیاد .
تا کد زیر پیش رفتم ولی کامل نمیشه !


var querygroups1 = from fishtb in db.Tbl_FishHoghoghis
join ahkamtb in db.Tbl_PersonAhkams
on fishtb.FK_AHKID equals ahkamtb.AHKID
join jobunit in db.Tbl_JobUnits
on ahkamtb.FK_JUID equals jobunit.JUID
where fishtb.FK_OSTID == Users.AdminOSTID()
group jobunit by new
{
jobunit.JUID,
jobunit.JUTitle
} into grp
select new
{
JUID = grp.Key.JUID,
JUTitle = grp.Key.JUTitle,
Totalhoghoogh = grp.Sum();
};

kastakoorta
دوشنبه 29 خرداد 1391, 17:25 عصر
از نرم افزار Linqer کمک گرفتم و کد زیر رو داد ، نظرتون چیه ؟

from t in db.Tbl_JobUnits
join t0 in db.Tbl_PersonAhkams on new { JUID = t.JUID } equals new { JUID = t0.FK_JUID }
join t1 in db.Tbl_FishHoghoghis on new { AHKID = t0.AHKID } equals new { AHKID = t1.FK_AHKID }
group new { t, t1, t0 } by new
{
t.JUID,
t.JUTitle
} into g
select new
{
JUID = (System.Int32?)g.Key.JUID,
g.Key.JUTitle,
TotalHoghoogheKhales = (System.Double?)g.Sum(p => p.t1.FHoghogheKhales),
TotalEzafeKar = (System.Double?)g.Sum(p => p.t1.FEzafeKar),
TotalMountHoghoogh = (System.Double?)g.Sum(p => p.t0.AHKMountHoghoogh)
};