PDA

View Full Version : یه سوال خیلی ساده



Erfan_eng
یک شنبه 11 دی 1384, 11:41 صبح
جدولی داریم با کلیدهای سال و ماه و کد پرسنلی اطلاعات پرسنلی از ماه 1 در این جدول وجود دارد. برخی افراد در ماههای بعدی حذف شده اند و برخی دیگر اضافه شده اند. select ای لازم دارم که هر کد پرسنلی را فقط یک بار select کند چه پرسنل در ماه 1 باشد چه ماه 7 (یک پرسنل ممکن است در تمامی ماهها record داشته باشد):متفکر:

PalizeSoftware
یک شنبه 11 دی 1384, 12:15 عصر
این موضوع چه ربطی به کریستال ریپورت داره؟:متفکر:
اگه با ساده‌ترین کتب SQL نگاه می‌کردی جوابت رو میدید. بهر حال:


SELECT DISTINCT PersonCode
FROM ...
...

Erfan_eng
یک شنبه 11 دی 1384, 12:36 عصر
شرمنده اونقدر حواسم به نوشتن Report بود که حواسم نشد اینجا CrystalReporte ولی با distinct نمیشه میتونید امتحان کنید چون هر فرد ممکن هست توی 5 ماه اسمش باشه چون ماههای متفاوته توی لیست میاد در ضمن همون لحظه میخوایم اولین ماه استخدام رو هم بدونیم پس از ُselect نمیشه حذفش کرد. با Select top 1 with ties هم امتحان کردم نشد.

PalizeSoftware
یک شنبه 11 دی 1384, 12:44 عصر
مگه مشخصات پرسنل هم توی این جدول هست؟ منظورم نام و ...
اگه اینطور باشه که طراحی جداول اشتباه هست.
بیشتر توضیح بده دقیقا چی می‌خوای.

Erfan_eng
یک شنبه 11 دی 1384, 13:17 عصر
جدول رو اینطوری در نظر بگیرید.
FinanceYear
MonthNo
EmployeeNo
FirstName
LastName
.
.
.
3 فیلد اول کلیدن حالا هر ماه که پردازش حقوق و دستمزد انجام میشه بقیه فیلدها هم پر میشن. من table رو نمیخوام تغییر بدم. فیلدهایی مثل تاریخ استخدام و ... رو هم توی table Employeeدارم که Selectam رو بنویسم ولی این Select رو برای یه کار دیگه میخوام. اطلاعات رو اینطوری در نظر بگیرید
FinanceYear MonthNo Employeeno Fisrtname
5555 7000 1 1384
5555 7000 2 1384
5555 7000 3 1384
5556 7001 2 1384
5556 7001 3 1384
5557 7002 3 1384
5558 7003 3 1384

حالا من میخوام Select ای داشته باشم که این جواب رو به من بده

FinanceYear MonthNo Employeeno Fisrtname
5555 7000 1 1384
5556 7001 2 1384
5557 7002 3 1384
5558 7003 3 1384