صفحه 1 از 1
سوال درباره T-SQL
ارسال شده: جمعه ۱۰ خرداد ۱۳۸۷, ۴:۳۷ ب.ظ
توسط mikaeil
سلام
فرض کنید که یک جدول مشخصات فردی داریم، میخوایم ببینیم که چه فامیلی بیشتر از همه فامیل ها تکرار شده و همینظور فامیل بعد و بعدش
چه دستوری باید بنویسم؟

ارسال شده: جمعه ۱۰ خرداد ۱۳۸۷, ۸:۰۱ ب.ظ
توسط Present
اگه تو asp کار میکنی میتونی یک لیست بذاری و هرچی اون فامیلی هست رو بریزی تو اون و تعداد اونها رو بذاری یا تو یک آرایه بریزی و بعد بشماری و یا یک متغیر به عنوان شمارنده بذاری و تعداد چاپ کنی کلکهای جالبی بود نه

ارسال شده: جمعه ۱۰ خرداد ۱۳۸۷, ۹:۰۴ ب.ظ
توسط mikaeil
morteza_1234m نوشته شده:اگه تو asp کار میکنی میتونی یک لیست بذاری و هرچی اون فامیلی هست رو بریزی تو اون و تعداد اونها رو بذاری یا تو یک آرایه بریزی و بعد بشماری و یا یک متغیر به عنوان شمارنده بذاری و تعداد چاپ کنی کلکهای جالبی بود نه

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

(لااقل برای کسایی که درس پایگاه دادشون خوب بوده

)
ارسال شده: شنبه ۱۱ خرداد ۱۳۸۷, ۲:۱۵ ب.ظ
توسط 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 (تکرار) رو داره رو برگردونه )
ارسال شده: شنبه ۱۱ خرداد ۱۳۸۷, ۳:۰۱ ب.ظ
توسط mikaeil
ta.abad, جان
آقا ممنون ،نيازي به جدول يا view ديگه اي نيست فقط اگر آخر اين دستور ORDER BY Expr1 DESC را اضافه کنيم جواب نهايي را ميگيريم

بالاخره بايد Expr1 يجا بکار بیاد
راستی فکر نکنم نیازی به HAVING COUNT() باشه
با تشکر مجدد

موفق باشي
