تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 12

نام تاپيک: شمارش تعداد سطرهای جدول تا جایی که دستور where محقق شود

  1. #1
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض شمارش تعداد سطرهای جدول تا جایی که دستور where محقق شود

    با سلام

    فرض کنید من جدولی دارم که دارای دو ستون است.
    می خواهم تعداد سطرهایی از جدول را به دست آورم که منطبق بر نظر کاربر است.
    با دستور TOP n باید مشخص کرد که دقیقاً چند سطر برای بازیابی مورد نظر است ولی در مورد سوال من این عدد معلوم نیست.
    کاربر دو ورودی وارد می کند.
    دستور select :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حالا می خواهم تعداد سطرهایی که شمره می شوند را به دست آورم.
    دستور count همه سطرها را می شمارد ولی من می خواهم تا جایی شمرده شود که شرط
    WHERE
    محقق شود.

  2. #2
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض یک توضیح

    سلام

    یک توضیح برای روشن تر شدن بحث

    وقتی من از دستور زیر استفاده می کنم، تعداد سطرهایی را که در شرط صادق است را بر می گرداند
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ولی منظور من این نیست.

    فرض کنید که جدولی 50 سطر دارد و رکورد مورد نظر کاربر در سطر 20 قرار دارد. حالا می خواهم دقیقاً به این عدد 20 برسم

  3. #3
    آخر فروم باز shalineh's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    فعلا ایران
    پست ها
    1,033

    پيش فرض

    قسمت Bold شده رو به کوئری اضافه کن.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  4. #4
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض

    سلام
    من این دستور را هم امتحان کردم ولی تعداد سطرهای تاثیر گرفته از شرط where را باز می گرداند. مثلاً 5 سطر در این شرط صدق می کند.

    فرض کنید که رکورد مورد نظر کاربر در سطر بیستم است. یعنی اگر از ابتدای جدول نقطه شروع را فرض کنیم، در سطر بیستم جدول رکورد مورد نظر کاربر پیدا می شود. من این عدد 20 را می خواهم نه تعداد سطرهایی که در شرط where صدق می کنند.

    Rowcount @@ هم نتیجه ای را بر می گرداند که count بر می گرداند. در صورتی که این جواب مد نظر من نیست

  5. #5
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض

    اگر راه حلی نداره لطفً من رو هم مطلع کنید

  6. #6
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض

    سلام
    پس چگونه دستور select
    rowcount را می شمرد تا به رکوردی برسد که کاربر آن را انتخاب کرده است؟

    سوال عجیبی پرسیدم؟

  7. #7
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

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

    فرض کنید که رکورد مورد نظر کاربر در سطر بیستم است. یعنی اگر از ابتدای جدول نقطه شروع را فرض کنیم، در سطر بیستم جدول رکورد مورد نظر کاربر پیدا می شود. من این عدد 20 را می خواهم نه تعداد سطرهایی که در شرط where صدق می کنند.

    از دستور زیر استفاده کنید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    البته استفاده از این عدد چندان صحیح نیست.
    چون در یک بانک واقعی در شبکه در همان لحظه انتخاب شما شاید فرمان های متعدد دیگر Insert و Delete در جریان باشند که عملاً ترتیب سطرها را عوض کنند و برنامه شما کار اشتباهی انجام دهد.
    کلاً در برنامه شبکه ای اصلاً نباید از این عدد شماره سطر استفاده خاص کنترلری کرد.

    موفق باشید.

  8. #8
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض

    سلام

    متاسفانه درست نمیتوانید منظورتان را منتقل کنید ولی حالا گمانم از جمله زیر متوجه شدم چه میخواهید!
    <
    اگر حس می شود که سوال جای توضیح بیشتری دارد به من بگویید تا بیشتر توضیح دهم.

    البته استفاده از این عدد چندان صحیح نیست.
    چون در یک بانک واقعی در شبکه در همان لحظه انتخاب شما شاید فرمان های متعدد دیگر insert و delete در جریان باشند که عملاً ترتیب سطرها را عوض کنند و برنامه شما کار اشتباهی انجام دهد.
    کلاً در برنامه شبکه ای اصلاً نباید از این عدد شماره سطر استفاده خاص کنترلری کرد.
    من از شبکه استفاده نمی کنم.

    پس اصولاً نباید در شبکه چنین سوالی مطرح شود که دقیقا فوکوس برود روی سطری که تازه درج شده یا تازه ویرایش شده؟ یا اینکه باید فوکوس برود روی سطری که تازه درج شده یا تازه ویرایش شده ولی با این روش نمی شود؟

    کدامیک از دو سوال بالا جوابش آری است؟


    در ضمن از sql2000 استفاده می کنم. کد را امتحان می کنم، انشاء الله روی 2000 هم جواب دهد.ممنون

  9. #9
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض

    سلام
    دستور ROW_NUMBER() در SQL2000 وجود ندارد.
    اما یک دستور جالب برای SQL2000 پیدا کردم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    که جوابش می شود:
    در این جستجو یک عدد TerritoryID و پنج عدد EmployeeID یافت شد.

  10. #10
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    پس اصولاً نباید در شبکه چنین سوالی مطرح شود که دقیقا فوکوس برود روی سطری که تازه درج شده یا تازه ویرایش شده؟ یا اینکه باید فوکوس برود روی سطری که تازه درج شده یا تازه ویرایش شده ولی با این روش نمی شود؟
    من احساس میکنم که شما این سوال را پرسیدید تا مشکلتان در تاپیک زیر حل شود؟؟؟
    forum.p30world.com/showthread.php?t=282612

    اگر اینطور است، این راهش نیست.
    شما باید ایندکس آیتم را در خود گراید پیدا کنید، اصلاً شاید کاربر دستی روی سرستونهای گراید کلیک کند و sort را تغییر دهد در این صورت ایندکس گراید با بانک یکی نخواهد بود.
    یا اصلاً شاید گراید فقط شامل تعداد خاصی از سطرهای بانک باشد که باز ایندکس گراید با بانک فرق خواهد کرد.
    اینکس گراید باید از dataset خودش پیدا شود، و معمولاً نیازی هم به حلقه for نخواهد بود.

    اگر مشکل شما همان مشکل تاپیک قبلی است، پیشنهاد میکنم جواب و بحث را در همان تاپیک ادامه دهیم.

    در ضمن از sql2000 استفاده می کنم. کد را امتحان می کنم
    چرا؟؟؟
    احساس نمیکنید که برای سال 2009 (سه روز دیگر) استفاده از نسخه 2000 یک کم زیادی زنگ زده و فسیل مانند است؟
    شما ویندوز XP و Vista را ترجیح میدهید یا ملنیوم؟

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •