PDA

View Full Version : یه مشکل برای ساخت یک سلکت



rezaei manesh
شنبه 24 دی 1384, 15:05 عصر
سلام
من یه جدول دارم که 3 تا فیلد کلید داره 1- شماره پرسنلی2-تاریخ 3- کد سطح طرح(Printed)
حالا من برای هر پرسنل بر حسب تاریخی که کاربر میده می خوام یه خروجی به این شکل داشته باشم که رکوردی را برای هر پرسنل برگردونه که حاوی آخرین تاریخ قبل از تاریخی که کاربر داده باشه
و برای هر کد سطح طرح یک جمع از فیلد امتیاز(point) داشته باشه؟
این دستور این کار رو انجا م میده اما بدون در نظر گرفتن آخرین تاریخ

SELECT EmployeeNo, RegistDate, Printed, SUM(Point) AS Point
FROM Paper
GROUP BY EmployeeNo, Printed, RegistDate, Point

من این مشکل رو با ساخت یک ویو که شامل شماره پرسنلی و آخرین تاریخ بود و ارتباط این دو فیلد با دو فیلد هم نام ئر جدول من درست کردم اما مشکل اینجا بود که در ویو نمیتونم یک تاریخ از کاربر بگیرم و ماکسیمم تاریخ رو بر حسب اون تاریخ انجام بدم؟!!
در این جور مواقع شما چکار می کنید؟
کمک

sm
یک شنبه 25 دی 1384, 10:29 صبح
از Stored Procedure در SQL استفاده کنید.

rezaei manesh
یک شنبه 25 دی 1384, 11:47 صبح
چه طوری؟
توضیح:
sp اول یه متغیر میگیره و برای هر شماه پرسنل یک رکود برمی گردونه توسط کد زیر
CREATE PROCEDURE dbo.Sp1
@RegistDate NVarChar(10)
AS
SELECT EmployeeNo, MAX(RegistDate) AS RegistDate FROM dbo.Plans
where RegistDate=@RegistDate
GROUP BY EmployeeNo
GO
و Sp2یا view1 باید فیلدEmployeeNoو RegistDate از sp1 را با sp2 یا اگه بشه view1 ارتباط بده و جدول فیلتر شده sp2 یا اگه بشه view1 را به برنامه بفرسته!
جدول دوم من هم همین جدول plansهست که با ید این طوری فیلتر بشه؟