PDA

View Full Version : سوال: راهنمایی در نوشتن دستور select فوری



ibd_iran
سه شنبه 12 شهریور 1387, 14:15 عصر
با سلام

SELECT TBL_register_lesson_by_admin.day, TBL_register_lesson_by_admin.watch, TBL_register_lesson_by_admin.exam_type,
TBL_register_lesson_by_admin.exam_date, TBL_register_lesson_by_admin.exam_watch, TBL_register_lesson_by_admin.exam_id_building,
TBL_tuitional_group.typesection,TBL_building.name_ number_building,TBL_info_lesson.name_lesson,TBL_ma ster.family,TBL_register_lesson_by_admin.code_by_s ystem
FROM TBL_register_lesson_by_admin INNER JOIN
TBL_tuitional_group ON TBL_register_lesson_by_admin.id_typesection = TBL_tuitional_group.id_typesection INNER JOIN
TBL_info_lesson ON TBL_register_lesson_by_admin.id_lesson = TBL_info_lesson.id_lesson INNER JOIN
TBL_definition_type_lesson ON TBL_info_lesson.id_type_lesson = TBL_definition_type_lesson.id_type_lesson INNER JOIN
TBL_master ON TBL_register_lesson_by_admin.id_master = TBL_master.id_master full outer JOIN
TBL_building ON TBL_register_lesson_by_admin.exam_id_building = TBL_building.id_building
where (TBL_register_lesson_by_admin.[code_term]=@code_term)

این دستور می خواهیم طور بنویسم که تمام امتحانات که در یک ساعت یک مکان و یک روز است نمایش دهد باید چه کار کنم با گروه بندی می شه یا نه چکار کنم :عصبانی++::عصبانی++::عصبانی++: خیلی پیچ در پیچ شده

ibd_iran
سه شنبه 12 شهریور 1387, 14:28 عصر
group by TBL_register_lesson_by_admin.exam_date
having TBL_register_lesson_by_admin.[code_term]=@code_term

اگر دستور بالا اضافه کنم پیام زیر را می دهد

Msg 8120, Level 16, State 1, Procedure select_all_exam_with_beginning, Line 16
Column 'TBL_register_lesson_by_admin.day' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.


یکی کمک کنه:عصبانی++:

Amir_Safideh
سه شنبه 12 شهریور 1387, 14:36 عصر
اگر پیغام خطا را تا اخر بخونید میبینید که باید فیلد TBL_register_lesson_by_admin.day رو هم در قسمت Group By اضافه کنی . در اصل شما زمانی که از Group By استفاده میکنید باید نام فیلدهائی رو که در دستور سلکت آوردید رو هم در Group By بیارید . البته استثناهائی هم برای اینکار وجود داره . ولی در مثالی که زدید باید نام تمام فیلدهات رو هم در Group By بیارید .
--------------
موفق باشید .

ibd_iran
سه شنبه 12 شهریور 1387, 15:00 عصر
اگر پیغام خطا را تا اخر بخونید میبینید که باید فیلد TBL_register_lesson_by_admin.day رو هم در قسمت Group By اضافه کنی . در اصل شما زمانی که از Group By استفاده میکنید باید نام فیلدهائی رو که در دستور سلکت آوردید رو هم در Group By بیارید . البته استثناهائی هم برای اینکار وجود داره . ولی در مثالی که زدید باید نام تمام فیلدهات رو هم در Group By بیارید .
--------------
موفق باشید .

با تشکر

اما برای اینکه تمام داده های که در یک روز ویک ساعت ویک مکان هستند چطور به دست
آورم همان دستور select اولی که در تاپیک است چطور تغییر بده ام که این کار را انجام دهد

ibd_iran
سه شنبه 12 شهریور 1387, 15:28 عصر
http://barnamenevis.org/forum/C:\Documents and Settings\Administrator\My Documents\My Pictures\a1.GIF
جدول بالا داده است
SELECT TBL_register_lesson_by_admin.day, TBL_register_lesson_by_admin.watch, TBL_register_lesson_by_admin.exam_type,
TBL_register_lesson_by_admin.exam_date, TBL_register_lesson_by_admin.exam_watch, TBL_register_lesson_by_admin.exam_id_building,
TBL_tuitional_group.typesection,TBL_building.name_ number_building,TBL_info_lesson.name_lesson,TBL_ma ster.family,TBL_register_lesson_by_admin.code_by_s ystem
FROM TBL_register_lesson_by_admin INNERJOIN
TBL_tuitional_group ON TBL_register_lesson_by_admin.id_typesection = TBL_tuitional_group.id_typesection INNERJOIN
TBL_info_lesson ON TBL_register_lesson_by_admin.id_lesson = TBL_info_lesson.id_lesson INNERJOIN
TBL_definition_type_lesson ON TBL_info_lesson.id_type_lesson = TBL_definition_type_lesson.id_type_lesson INNERJOIN
TBL_master ON TBL_register_lesson_by_admin.id_master = TBL_master.id_master INNERJOIN
TBL_building ON TBL_register_lesson_by_admin.exam_id_building = TBL_building.id_building
groupby TBL_register_lesson_by_admin.exam_date, TBL_register_lesson_by_admin.exam_watch,TBL_regist er_lesson_by_admin.exam_id_building,TBL_register_l esson_by_admin.exam_type,
TBL_tuitional_group.typesection,TBL_building.name_ number_building,TBL_info_lesson.name_lesson,TBL_ma ster.family,TBL_register_lesson_by_admin.code_by_s ystem,TBL_register_lesson_by_admin.day,TBL_registe r_lesson_by_admin.watch

دستور را تغییر دادام به شکل بالا اما جواب که می خواهم به دست آید نزدیک است من فقط دادهای را می خواهم که دریک ساعت ویک مکان یک تاریخ امتحان دارند اگر با مثلا با بگویم فقط ردیف یک و دو را به من نشان بده اما نمی شه چکار کنم:عصبانی++::گیج:

ibd_iran
سه شنبه 12 شهریور 1387, 16:04 عصر
having (TBL_register_lesson_by_admin.[code_term]=@code_term and TBL_register_lesson_by_admin.exam_date=TBL_registe r_lesson_by_admin.exam_date and TBL_register_lesson_by_admin.exam_watch=TBL_regist er_lesson_by_admin.exam_watch and TBL_register_lesson_by_admin.exam_id_building=TBL_ register_lesson_by_admin.exam_id_building)

چرا این تک کد بالا جواب نمی دهد