View Full Version : پرس و جو
nsdido
یک شنبه 02 خرداد 1389, 21:11 عصر
سلام . من یک query دارم که می خوام اگه زحمتی نیست از صحتش مطمئن بشم .
s(sid,sname,city,major)
course(cid,cname,credit,major,perecid)
term(sid,cid,pid,grade,termno,year)
proferror(pid,pname,degree,major)
مشخصا ت دانشجویان کامپیوتر که فارغ التحصیل هستد به عبارتی کلیه دروس مرتبط با خود را پاس کرده اند؟
nsdido
یک شنبه 02 خرداد 1389, 22:10 عصر
من این جوابو دادم درسته؟
select *
from s
where 10<(select term.grade
from term,student
where student.sid=term.sid
group by (term.sid)
having student.major='computer')
hamedsabzian
یک شنبه 02 خرداد 1389, 22:18 عصر
یه ساختار واضح تر از جدول هات بده! با یه کم توضیح!
kebriya
یک شنبه 02 خرداد 1389, 22:21 عصر
مثل کد زیر که شبیه کار شماست
SELECT tblshagerd.fname, tblshagerd.lname
FROM tblclass INNER JOIN
tbldoore ON tblclass.id = tbldoore.idclass INNER JOIN
tblshagerd ON tbldoore.idsh = tblshagerd.id
WHERE (tblclass.sath = 'inter') AND (tbldoore.payanterm >= 10)
nsdido
یک شنبه 02 خرداد 1389, 22:29 عصر
جدول student که شامل شماره و نام و شهر و رشته می شه رو دارم و می خوام مشخصات دانشجویی رو بدم که رشته اش کامپیوتره و همه درساشو پاس کرده یعنی میشه گفت بالاتر از 10 باشه.حالا این وسط به یک جدول ترم هم نیاز دارم که شامل شماره دانشجو،شماره درس،شماره استاد،نمره،شماره ترم و سال تحصیلی میشه .
kebriya
یک شنبه 02 خرداد 1389, 22:42 عصر
ببین توی sql روی جدولت راست کلیک کن open table و query رو انتخاب کن حالا همه جدولهایی که بالا گفتی رو اینجا add کن و فیلدهای مربوط رو ارتباط بده حالا فکر کنم بقیه رو خودت بتونی
اگه نشد جدولهاتو بفرست درست کنم
nsdido
یک شنبه 02 خرداد 1389, 22:44 عصر
خب من نمره رو توی جدول term دارم و رشته رو توی جدول student .باید دانشجویی رو پیدا کنم که هم رشته اش کامپیوتر باشه،هم همه ی درساشو پاس کرده باشه . نباید گروه بندی کنم بر اساس شماره دانشجویی و رشته کامپیوتر؟ این کدی که دادین از 3 جدول استفاده کرده
nsdido
یک شنبه 02 خرداد 1389, 22:57 عصر
ببین تا اینجاش درسته ؟
select term.grade
inner join student
on student.sid=term.sid
groupby(term.sid)
having student.major='computer'
این گروه بندی می کنه بر اساس رشته درسته؟ آخه من برنامه شو ندارم نمی تونم تست کنم.
nsdido
یک شنبه 02 خرداد 1389, 22:58 عصر
حالا اگه بخوام دانش اموزایی که همه درساشونو پاس کردن پیدا کنم باید چکار کنم؟
nsdido
یک شنبه 02 خرداد 1389, 23:07 عصر
مشکل من اینجاس که نمی دونم اگه گروه بندی بشه باید چه جوری واسه همه فیلدهای یک گروه مثلا شماره دانشجویی 60 همه ی درساشو با شرط بزرگتر از 10 چک کنم!:عصبانی++:
kebriya
دوشنبه 03 خرداد 1389, 08:24 صبح
SELECT tblshagerd.fname, tblshagerd.lname
FROM tblclass INNER JOIN
tbldoore ON tblclass.id = tbldoore.idclass INNER JOIN
tblshagerd ON tbldoore.idsh = tblshagerd.id
WHERE (tblclass.sath = 'inter') AND (tbldoore.payanterm >= 10)
ببین tblshagerd جدولی که اطلاعات شاگردا رو نگه میداره شبیه جدول student شما و tbldoore مشخصات نمره که شبیه جدول term شما. بالاخره یه فیلدی داری که این دو تا رو بهم وصل کنه دیگه؟ همون کلید خارجی میشه خوب inner join کن دیگه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.