سوال درباره T-SQL

در اين بخش مي‌توانيد در مباحث مربوط به برنامه نويسي پايگاه داده به بحث بپردازيد

مدیران انجمن: abbas.m.k, athlon64x2, شوراي نظارت

ارسال پست
Novice Poster
Novice Poster
پست: 81
تاریخ عضویت: دوشنبه ۱۳ شهریور ۱۳۸۵, ۲:۴۸ ب.ظ
سپاس‌های ارسالی: 445 بار
سپاس‌های دریافتی: 39 بار

سوال درباره T-SQL

پست توسط mikaeil »

سلام
فرض کنید که یک جدول مشخصات فردی داریم، میخوایم ببینیم که چه فامیلی بیشتر از همه فامیل ها تکرار شده و همینظور فامیل بعد و بعدش
چه دستوری باید بنویسم؟ :-x
>هر دم چو تاک بار درختي نمي کنيم // چون سرو بسته ايم به دل بار خويش را
>>>> عشق من ايران اسلامي <<<<
Captain
Captain
پست: 2755
تاریخ عضویت: چهارشنبه ۱۸ بهمن ۱۳۸۵, ۱۲:۴۶ ب.ظ
محل اقامت: شیراز
سپاس‌های ارسالی: 22364 بار
سپاس‌های دریافتی: 5559 بار

پست توسط Present »

اگه تو asp کار میکنی میتونی یک لیست بذاری و هرچی اون فامیلی هست رو بریزی تو اون و تعداد اونها رو بذاری یا تو یک آرایه بریزی و بعد بشماری و یا یک متغیر به عنوان شمارنده بذاری و تعداد چاپ کنی کلکهای جالبی بود نه :::P :m:a
پروانه نیستم که به یک شعله جان دهم / شمعم که سوزم و دودی نیاورم

گــــــــــــــــاهی تــــــــــــــاوان شیــــــــــر بودن قـــفس اســـت ...
امــــــــا شـــــغال هــــا در شـــــهــــر آزاد مـــــیگـــــــردنــــــــــد ... !

به زودی تعمیرکار لب تاپ می شم :-)
Novice Poster
Novice Poster
پست: 81
تاریخ عضویت: دوشنبه ۱۳ شهریور ۱۳۸۵, ۲:۴۸ ب.ظ
سپاس‌های ارسالی: 445 بار
سپاس‌های دریافتی: 39 بار

پست توسط mikaeil »

morteza_1234m نوشته شده:اگه تو asp کار میکنی میتونی یک لیست بذاری و هرچی اون فامیلی هست رو بریزی تو اون و تعداد اونها رو بذاری یا تو یک آرایه بریزی و بعد بشماری و یا یک متغیر به عنوان شمارنده بذاری و تعداد چاپ کنی کلکهای جالبی بود نه :::P :m:a


داری شوخی میکنی یا جدی میگی؟ جدول ها بزرگ تر از اونی هستن که بخوام هر چی توشون هست را بفرستم سمت کلاینت و تازه شروع کنم به مرتب سازی و شمارش!

واقعا کسی نمتونه کمک کنه؟ به نظر خودم باید جواب ساده ای داشته باشه :D (لااقل برای کسایی که درس پایگاه دادشون خوب بوده :-D )
>هر دم چو تاک بار درختي نمي کنيم // چون سرو بسته ايم به دل بار خويش را
>>>> عشق من ايران اسلامي <<<<
Captain II
Captain II
پست: 512
تاریخ عضویت: یک‌شنبه ۱۵ مهر ۱۳۸۶, ۷:۱۷ ب.ظ
محل اقامت: يه جايي خيلي دور شايد هم خيلي نزديک
سپاس‌های ارسالی: 159 بار
سپاس‌های دریافتی: 377 بار
تماس:

پست توسط ta.abad »

mikaeil, برای این کار میتونی ازQuery زیر استفاده کنی
SELECT personal_no, COUNT(personal_no) AS Expr1
FROM dbo.members AS members_1
GROUP BY personal_no
HAVING COUNT(personal_no) > 1
این query از جدول اعضا جدول جدیدی ایجاد میکنه که شامل شماره پرسنلی هر فرد و تعداد تکرار اون شماراست و میتونی باریختن این جدول توی یک جدول دیگه یا یک View و مقایسه و انتخاب بیشترین عدد از فیلد Expr1 که نمایانگر تعداد تکرار اون شماره پرسنلیه اونی که بیشتر از همه تکرار شده رو پیدا کنی (یا اینکه بشینی و یک Select دیگه به همین Query اضاف کنی تا شماره پرسنلی کسی که بیشترین تعداد Expr1 (تکرار) رو داره رو برگردونه )
 



 
Novice Poster
Novice Poster
پست: 81
تاریخ عضویت: دوشنبه ۱۳ شهریور ۱۳۸۵, ۲:۴۸ ب.ظ
سپاس‌های ارسالی: 445 بار
سپاس‌های دریافتی: 39 بار

پست توسط mikaeil »

ta.abad, جان
آقا ممنون ،نيازي به جدول يا view ديگه اي نيست فقط اگر آخر اين دستور ORDER BY Expr1 DESC را اضافه کنيم جواب نهايي را ميگيريم :-) بالاخره بايد Expr1 يجا بکار بیاد :grin:
راستی فکر نکنم نیازی به HAVING COUNT() باشه :eek:
با تشکر مجدد :razz: موفق باشي :-)
>هر دم چو تاک بار درختي نمي کنيم // چون سرو بسته ايم به دل بار خويش را
>>>> عشق من ايران اسلامي <<<<
ارسال پست

بازگشت به “Database Programming”