-
یک سوال پایگاه داده 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 که هفت بار تکرار شده بازگرداند ب
-
کد عکس تان با خطا مواجه شد
-
مشکل حل شد این کد رو امتحان کنید:
کد:
SELECT TOP (1) ID,
(SELECT COUNT(*) AS Expr1
FROM Table1
WHERE (ID = tbl.ID)) AS Expr1
FROM Table1 AS tbl
ORDER BY Expr1 DESC
موفق و پیروز باشید.
-
جوا ب سوال فهمیدم باید از create view استفاده کنیم
شرمنده من اسم جدول را گذاشتم ddd
create view zm(id,xp)
as
select id,count(id) as xp
from ddd
group by id
__________________________________________________ ____________________________________
select max(xp)
from zm
اسم create view من zm است
ابتدا create view را می سازیم وبعد که اجرایش با موفقیت انجام شد
create view را پاک می کنیم و بعد با دستور select از ان استفاده می کنیم که دقیقا در ست جواب می دهد
-
یک کم در مورد کد تان توضیح دهید
top برای چی استفاده کردید
متاسفانه روش شما را زیا د متو جه نشد م روشم خودم وقتی با ید با جدول team جوین کنم چون هیچ وجه اشتراکی ندارد جواب نمی دهد دیگه خسته شدم پس فردا باید تحویل بدهم از 20 تا سوال 2 تاش نتونستم حل کنم این 2 تا را خیلی ساده جواب می دهم متشکرم تا همین جا هم چیزهایی جدیدی یادگرفتم
-
سلام.
Topنمایش تعداد سطر ها رو مشخص میکنه.
مثلاً مقدار داخل Top را تغییر بدید...
مثلاً اگر 2 باشه دوتا سطر نمایش میده.و چون ما فقط به یک سطر نیاز داشتیم.مقدار را 1 قرار دادیم.
خوب شما هرجا مشکل داشتین بپرسین.چون کنکور نزدیکه پی سی یکم خلوت شده...
موفق باشید.
-
می شه بگید این کد شما وقتی استفاده می کنیم می خواهیم با یک جدول دیگه جوین کنیم چگونه این کار را باید بکنیم
-
شما یک مثال بزنید.
مثلاً که چه فیلدی از کدوم جدول رو میخواهید Select کنید و اینکه مثلاً Select کن بیشترین ID از جدول1 که ID برابر با ID1 از جدول دوم باشد.
موفق باشید.
-
مثلا این کدی که شما نوشتید خروجی اش بشود id با شماره 2
12 بار تکرار شده است
حالا فرض کنید که این id مشخصه یک فردی
که مشخصات این فرد توی جدول namep اولین شرط این که اگه id این تو تا جدول برابر بود نام ان فرد در خروجی نمایش بده
این را چگونه می نویسید باز هم متشکرم
-
سلام خسته نباشید.
این SQL هم چقدر پیچیدست...
اینم کدی خواستین جدول دوم هم به نام Tbl_Dmarket هست:
کد:
SELECT TOP (1) tbl.ID,
(SELECT COUNT(*) AS Expr1
FROM Table1
WHERE (ID = tbl.ID)) AS Expr1, tbl.ID AS Expr2
FROM Table1 AS tbl INNER JOIN
Tbl_Dmarket ON tbl.ID = Tbl_Dmarket.person
ORDER BY Expr1 DESC
موفق باشید.