PDA

View Full Version : راهنمایی در نمایش مجموع رکوردهای یک جدول برای فیلدهای یک جدو لدیگر(مثلا تعداد نفرات شاغل در شهرها)



saeidfar
سه شنبه 20 اردیبهشت 1390, 09:16 صبح
چند تا جدول داریم مثلا:
1- اطلاعات پرسنلی
2- شهرها
3- تخصصها
4- واحدها
5- تحصیلات
که جداول 2تا5 به جدول پرسنل لینک هستن(ریلیشن)
حالا یک گزارش(دستور sqlیا هر روش دیگر) میخوام که ببینم در هر شهری چند پرسنل مشغول بکار هستن
نمی خوام فیلتر بگیرم
بصورت خودکار تعداد شهرها رو در بانک شهر ها دربیاره سپس تعداد پرسنل مشغول در هر شهر رو محاسبه کنه و بگه چند نفرند.( لیست نفرات رو نمی خواهیم بلکه جمع نفرات مهمه)
نمایش فقط بصورت زیر باشه:
(شاغلین در شهرها)
ردیف /نام شهر/ تعداد شاغلین(نفر)
1-_____ تهران_______22
2-______ اصفهان____ 10
3-_____ شیراز ______30
یه گزارش سختر دیگه داریم اینه که مثلا از این 22 نفر شاغل در تهران از نظر تحصیلات چه وضعیتی دارن
(گزارش شاغلین در تهران)
ردیف __نوع مدرک__ تعداد شاغلین(نفر)
1- ___فوق لیسانس_______ 2
2- ____لیسلانس ________18
3- ___فوق دیپلم_________ 2
4- _____دیپلم __________0
5- ____زیر دیپلم ________0
از حلقه های for تو در تو استفاده میشه یا دستور sql هستش:متفکر: . لطفا راهنمایی بفرمایید.
با تشکر

mcandovani
سه شنبه 20 اردیبهشت 1390, 15:37 عصر
سلام


شما می تونی با یه sub query اینکار رو انجام بدی


select City_name, Personel_cnt
from City
inner join (select count(*) as Personel_cnt, city_id
from PersonelCity_rel
group by city_id) subQuery on subQuery.city_id = City.id

Reza_Yarahmadi
سه شنبه 20 اردیبهشت 1390, 18:10 عصر
(شاغلین در شهرها)
Select
C.CityName, Count(*) as TotalPersonal
From
Personal P INNER JOIN City C
ON
P.CityId = C.ID
GROUP BY
C.CityName



(گزارش شاغلین در تهران)
این بخش رو متوجه نمیشم. دستور زیر به ازا تمام شهرها ، تحصیلات رو بررسی میکنه. اگر میخواید به ازا شهر خاصی تحصیلات بررسی بشه کافیه یه شرط به ستور اضافه کنید و ...
Select
C.CityName, S.StudyName, Count(*) as TotalPersonal
From
Personal P INNER JOIN City C
ON
P.CityId = C.ID
INNER JOIN Study S
ON
P.StudtId = S.Id
GROUP BY
C.CityName, S.StudyName

saeidfar
چهارشنبه 21 اردیبهشت 1390, 11:17 صبح
این sub query رو میشه بیشتر توضیح بدین . گروهبندی که برا شمارش و جمع رکوردهاست . 2 تا هم جدول داریم درسته؟ و لی اگه متوجه باشید ما تو مسئلمون بیش از سه جدول هستش (جدول پرسنل، جدول شهرها , جدول تحصیلات و...) نمیتونم مسئله بالا رو درکش کنم؟ یه خورده بیشتر توضیح بدین ممنون