ورود

View Full Version : جمع مقادیر دو ستون از دو جدول با مقادیر متفاوت



Ishtar_4552
سه شنبه 14 خرداد 1392, 22:03 عصر
سلام
من در یک کوئری دو جدول موقت به صورت زیر دارم که هر کدام شامل ساعات کارکرد پرسنل می باشد.. و در نهایت می خواهم یک لیست شامل کلیه ساعات کارکرد پرسنل را به کاربر نمایش دهم..
برای فهم بهتر ساختار جدول ها رو گذاشتم:

Table1
-----------------
PersonnelID WorkHours
1 2.30
2 1.25
3 0.45
4 1.00

Table2
----------------
PersonnelID Hours
1 2.30
3 1.25
هر کدام از این دو جدول شامل ساعات کارکرد دو قسمت متفاوت هست، حالا می خواهم که یک گزارش کلی برای ساعات کارکرد بدست بیارم ، یعنی فیلد های ساعات کارکرد اونها با هم جمع بشه و در نهایت برای کد پرسنلی 1 ، 2 ، 3 ، 4 ساعات کارکرد حساب بشه و نمایش داده بشه..
با join دو جدول نتونستم به نتیجه ای که می خوام برسم .. من می خوام که برای مقادیر بالا دو ستون WorkHours و Hours مقادیرشان براساس هر پرسنل با هم جمع بشه و یک چنین نتیجه ای داشته باشم..

-----------------
PersonnelID SumHours
1 5
2 1.25
3 1.7
4 1.00
لطفا راهنمایی کنید.
مرسی.

محمد سلیم آبادی
سه شنبه 14 خرداد 1392, 22:47 عصر
سلام،
نباید در نتیجه، برای personelID شماره 3، جمع زمان ها برابر باشه با 2 ساعت و 10 دقیقه بجای 1 ساعت و 70 دقیقه؟

محمد سلیم آبادی
سه شنبه 14 خرداد 1392, 22:55 عصر
امتحان کنید:
select COALESCE(t1.personnelID, t2.personnelID) as personnelID,
ISNULL(WorkHours, 0) + ISNULL(Hours, 0) AS SumHourse
from table1 t1
full outer join table2 t2
on t1.personnelID = t2.personnelID;

tooraj_azizi_1035
سه شنبه 14 خرداد 1392, 23:00 عصر
با اعتراف به اینکه راه حل رو در Stackoverflow دیدم:
SELECT T.PersonnelID,
SUM ( T.Hours ) AS SumHours
FROM (
SELECT PersonnelID, WorkHours FROM TABLE1
UNION ALL
SELECT PersonnelID , Hours FROM TABLE2
)T
GROUP BY T.PersonnelID

Ishtar_4552
سه شنبه 14 خرداد 1392, 23:05 عصر
سلام،
نباید در نتیجه، برای personelID شماره 3، جمع زمان ها برابر باشه با 2 ساعت و 10 دقیقه بجای 1 ساعت و 70 دقیقه؟
حق با شماست.. اشتباه تایپی بود جمع کد پرسنلی 3 باید بشه 2 ساعت و 10 دقیقه.
بهر حال ممنون..