صفحه 1 از 1

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

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

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

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


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

واقعا کسی نمتونه کمک کنه؟ به نظر خودم باید جواب ساده ای داشته باشه :D (لااقل برای کسایی که درس پایگاه دادشون خوب بوده :-D )

ارسال شده: شنبه ۱۱ خرداد ۱۳۸۷, ۲:۱۵ ب.ظ
توسط 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 يجا بکار بیاد :grin:
راستی فکر نکنم نیازی به HAVING COUNT() باشه :eek:
با تشکر مجدد :razz: موفق باشي :-)