-
یک سوال پایگاه داده sql
پایگاه داده وب سایت اطلاع رسانی در مورد بازیهای جام جهانی فوتبال
مشکل من این است که:
نام بازیکنان یا بازیکنانی ر ا بیابید که د جام 1998 بیشترین گل را زده اند :(بیشترین اش را چگونه باید مشخص کنیم)
نام های بازیکنان و شناسه شخص در جدول person
بازیکنان تیم ها در هریک از جام ها در جدول team_player
اطلاعات گل های زده شده در بازی های مختلف در جدول goals
من می توانم نام بازیکنان را برگردانم ولی بیشترین گل نه
خواهشن راهنمایی کنید؟
اینم پایگاه دادهام که ساختم
کد:
http://rapidshare.com/files/248788144/fotball.bak.html
-
سلام خسته نباشید:
برای بزرگترین:
کد:
SELECT Max(ID) AS Expr1
FROM Tbl_Name
برای کوچکترین:
کد:
SELECT Min(ID) AS Expr1
FROM Tbl_Name
موفق باشید.
-
خودم می دونم بزرگترین را از تابع maxو کوچکترین min
ویژگی های جدول goal :
goals:شماره گل زده شده (هر گلی که زده می شود یک شماره دارد)
id: شماره فردی که گل را زده است
cup: شماره جام
اگر من روی ویژگی goals تابع max را استفاده کنم می دانید چی می شه بزرگترین شماره گل را برمی گرداند
و اگر با تابع count گل های زده شده را در جام 1998 شمارش کنم فقط تعد اد گل های زده شده بدست می اید
نمی شود مشخص کرد که بیشترین گل را چی کسی زده است
من سوالم این است که چگونه بیشترین گل زده شده را مشخص کنم .
-
GROUP BY id
سلام خسته نباشید.
من کد زیر رو براتون نوشتم ولی از Expr1 خطا میگیره میگه تعریف نشده اگه بتونین درستش کنین مشکلتون حل میشه.اگه درستش کردین لطفاً بگین ما هم استفاده کنیم ممنونم.
کد:
SELECT id, COUNT(id) AS Expr1
FROM Table1
GROUP BY id
HAVING (Expr1 = MAX(Expr1))
موفق باشید.
-
تا انجایی که من اطلاع دارم وقتی از as استفاده می شود یعنی نام ستون خروجی را تعیین کن ونمی توانم این نام را در داخل quary استفاده کرد
-
select names
from person
where id in(select id
from gols
groupby id
having(count(id)>max(id)))
-
من این quary را نوشتم ولی فقط وقتی که id فرد کوچکتر از بزرگترین id یعنی 12 بود جواب می دهد ولی اگر فردی که گل را زده id اش 12 بود نمی تواند نامش را برگرداند
می دانم quaryام غلط است ولی من فکرمی کنم نباید max را استفاده کنم چون max بزگترین عدد در یک ستون را برمی گرداند ایا می شود count و max با هم استفاده شود یعنی اول شمارش کند بعد این شمار ش را به عنوان بزرگترین استفاده کند من این کار کردم ولی به جواب نرسیدم
متشکرم
-
سلام.
کد:
select names
from person
where id in(select id
from gols
groupby id
having(count(id)>=max(id))
من فقط یه مشکل دارم که اگه حل بشه مشکل شما هم حل میشه!
ببینین ما یک جدول به نام Table1 که یک ستون به نام ID داریم(شما فعلاً جدول خودتونو بیخیال و یه جدول ساده مثل این بسازین)
به جدول مقدار های زیر رو بدین:
1
1
2
1
3
4
5
1
2
1
1
5
1
حالا Quary زیر رو اجرا کنین:
کد:
SELECT ID, COUNT(ID) AS Expr1
FROM Table1
GROUP BY ID
خوب اونایی که Select میشن شبیه به شکل زیره:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
آدرس عکس:
کد:
http://hamishebaharp30world.persiangig.com/Visual%20Basic%206/quary2.JPG
حالا الان بزرگترین توی ستون Expr1 عدد 7 هست.اگه ما بتونیم این 7 رو با Havingیا Maxیا هر چیزی Select کنیم همه چیز درست میشه. که من کد زیر رو نوشتم ولی خطا میداد:
کد:
SELECT id, COUNT(id) AS Expr1
FROM Table1
GROUP BY id
HAVING (Expr1 = MAX(Expr1))
میگه Expr1 وجود نداره!!
موفق باشید.
-
ببنید کد شما یک مشکل داره
شما نمی توانید از expr1 استفاده کنید چون
بعد از as هر چیزی نوشته بشه برای خروجی با تو جه به این مقدار های که شما دادید باید عدد 1 که هفت بار تکرار شده بازگرداند ب
-
کد عکس تان با خطا مواجه شد