PDA

View Full Version : سوال: مشکل در سلکت کردن



Milad.a.p
جمعه 04 اردیبهشت 1388, 00:26 صبح
سلام
من یک جدول دارم که توش اطلاعات ترمی دانشجویان ذخیره میشه یک جدول دیگه هم دارم که غیبت های دانشجویان در یک ترم خاص ذخیره میشه.
من میخوام تو یکی از ریپورتهام تعداد غیبتهای کل و تعداد غیبتهای موجه و تعداد غیبتهای غیر موجه رو به دست بیارم.
کدی که من تو استورد پریسیجر استفاده کردم از این قراره :

ALTER PROCEDURE dbo.RptGetStudentsAbsences
(
@TermID nchar(4),
@Level nchar(5),
@TeacherID nchar(10),
@ClassTime nchar(13),
@Branch nchar(5)
)
AS
SELECT Te.TLevel,Te.ClassTime,Te.Branch,T.FName,T.LName,A b.StudentID,S.FName,S.LName,
SUM(CASE WHEN Ab.Type = 'غیر موجه' THEN 1 ELSE 0 END) AS IAbs,
SUM(CASE WHEN Ab.Type = 'موجه' THEN 1 ELSE 0 END) AS TAbs,
COUNT(*) AS Totall
FROM AbsencesTable AS Ab

JOIN TermsTable AS Te ON(Ab.TermID = Te.TermID)
JOIN TeachersTable AS T ON(Te.TeacherID = T.TeacherID)
JOIN StudentsTable AS S ON(Ab.StudentID = S.StudentID)

WHERE Ab.TermID = @TermID AND Te.TLevel = @Level AND Te.TeacherID = @TeacherID AND Te.ClassTime = @ClassTime AND Te.Branch = @Branch

GROUP BY Te.TLevel,Te.ClassTime,Te.Branch,T.FName,T.LName,A b.StudentID,S.FName,S.LName


RETURN

ولی موفق نشدم نتیجه ی دلخواه رو بگیرم.

با تشکر.

Milad.a.p
جمعه 04 اردیبهشت 1388, 11:35 صبح
مشکل این اسوترد پریسیجر تو اون قسمت چک کردن مقادیر فارسی هستش. این مشکل تا حالا برای کسی پیش اومده؟ هر طوری فکر میکنم میبینم استورد پریسیجر باید کار کنه.

polisoftco
جمعه 04 اردیبهشت 1388, 19:55 عصر
سلام
همونطور که خودتون فرمودین، مشکل از لغات فارسی هستش، منم قبلا همچین مشکلی :عصبانی++:داشتم اما با انگلیسی کردن لغات فارسی، مشکلم حل شد :لبخند:
درود و بدرود

goldkavir
شنبه 05 اردیبهشت 1388, 11:52 صبح
همونطوری که خودتون و polisoftco گفتین مشکل از فارسی بودنه ولی می تونید یه جدول برای ثابتهای سیستم داشته باشید و به این نوع مقادیر (موجه و غیرموجه، اسامی ماهها، روزای هفته و...) یه کد و یه اسم بدین و تو جدولای دیگه کدشو ذخیره کنید در این صورت برای مقایسه مشکلی پیش نمیاد:چشمک::متفکر:

mlh_poorranjbar
شنبه 05 اردیبهشت 1388, 13:48 عصر
من که قبلا مشکل فارسی بودن رو داشتم به این خاطر بود که رکوردها رو مستقیما از sql درج میکردم.وقتی مشکلم حل شد که رکورد ها رو از داخل برنامه ای که توی vb نوشته بودم درج کردم.فکر میکنم با هر زبان برنامه نویسی جواب بده.امتحان کنید ضرر نداره.