نمایش نتایج 1 تا 6 از 6

نام تاپیک: مشکل در group by و Count

  1. #1
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709

    مشکل در group by و Count

    سلام
    دوستان مشکلی در رابطه با استفاده از دستورات group by و count برام پیش اومده.
    اما مشکل :

    پایگاه داده من حاوی یک جدول و تعدادی فیلد ( مثلا به فیلد ) است . مطالب موجود در این پایگاه حاصل یک نظر سنجی انجام شده از مردم است . حدود 20 سوال از مردم پرسیده شده و جوابها در بانک ذخیره شده. ( فقط جوابها در بانک ذخیره است . )
    برای هر سوال یک فیلد ایجاد شده . مثلا فیلد v1 جوابهایی که در رابطه با سوال 1 جواب داده شده اند میباشد. سوالات مشخص نیست چند جوابی است بعضی ها 2 جوابی و بعضیها 3 تا 4 جوابی ( که اینهم مهم نیست ) حال ما میخواهیم تعداد جوابهای داده شده به این سوالات و درصدشان را مشخص کنیم . من اینکار را انجام داده ام اما راهکار درستی نیست .
    من نام تمامی جداول را استخراج کرده ام و هر بار با دستور select جوابهای مربوط به یک سوال را پیدا میکنم و gridview را با آن bind میکنم. به شرح زیر:
            sqlSend = "SELECT v1 AS Vrag1, COUNT(v1) AS Antwoord1 FROM TableName GROUP BY v1"

    حال برای هر سوال این دستور را تکرار میکنم . مشکلی که هست به غیر از اینکه سرعت میاد پائین ، میخوام کل را در یک gridview نمایش بدم . آیا دستور sql را میتوان به شکلی نوشت که با یکبار مراجعه به بانک جواب همه سوالات را پیدا کند؟

  2. #2
    یعنی شما یه جدول دارید که به ازای هر سوال یه فیلد داره که حالا جوابهای توی فیلد مختص خودش ذخیره شده ؟
    اگر اینطور باشه باید بگم که در طراحی جدولت اشتباه کردی . بهتر بود که دو جدول در نظر میگرفتی یکی برای ذخیره سوالها و دیگری برای پاسخ ها که جدول پاسخها به کلید جول سوالها مربوط میشد یعنی مقدار آی دی سوال رو از جدول سوالها میگرفت در این صورت گزارشگیری دقیقتر و سریعتر میشد .
    اگر هم اینطور نیست لطفا بیشتر در مورد فیلدها توضیح بدید تا بهتر بتونیم کمکت کنیم .
    ---------------
    موفق باشید.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709
    نقل قول نوشته شده توسط Amir_Safideh مشاهده تاپیک
    یعنی شما یه جدول دارید که به ازای هر سوال یه فیلد داره که حالا جوابهای توی فیلد مختص خودش ذخیره شده ؟
    اگر اینطور باشه باید بگم که در طراحی جدولت اشتباه کردی . بهتر بود که دو جدول در نظر میگرفتی یکی برای ذخیره سوالها و دیگری برای پاسخ ها که جدول پاسخها به کلید جول سوالها مربوط میشد یعنی مقدار آی دی سوال رو از جدول سوالها میگرفت در این صورت گزارشگیری دقیقتر و سریعتر میشد .
    اگر هم اینطور نیست لطفا بیشتر در مورد فیلدها توضیح بدید تا بهتر بتونیم کمکت کنیم .
    ---------------
    موفق باشید.
    سلام
    دوست عزیز از اینکه به سوال توجه نمودی ممنون.
    1. جداول را من طراحی نمیکنم . من سرگرم طراحی برنامه ای تحت وب هستم که شخص (مشتری) بتواند فایل excel ( که این فایل حاوی فقط جوابهای نظرسنجی میباشد) را آپلود و برنامه آنرا خوانده و تعداد کسانی که به این سوالات چواب داده همجنان درصد آنها را هم محاسبه و در یک فایل excel دیگر ذخیره کند. همه مراحل انجام شده فقط گفتم من به ازای هر سوال با دستور select یکبار بانک را باز کرده و نتایج را به دست می آورم حال میخوام یکبار با دستور sql این کار را انجام بدم .
    یعنی دستور select ی میخوام که به یکبار همه جوابها با درصدشان را بتوانم ببینم .
    امبدوارم منظورم را گرفته باشید. اگه باز مشکلی هست میتوان فایل access و یا excel آنرا آپلود کنم .

  4. #4
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814

    با سلام

    نقل قول نوشته شده توسط Hossein Bazyan مشاهده تاپیک
    سلام
    دوست عزیز از اینکه به سوال توجه نمودی ممنون.
    1. جداول را من طراحی نمیکنم . من سرگرم طراحی برنامه ای تحت وب هستم که شخص (مشتری) بتواند فایل excel ( که این فایل حاوی فقط جوابهای نظرسنجی میباشد) را آپلود و برنامه آنرا خوانده و تعداد کسانی که به این سوالات چواب داده همجنان درصد آنها را هم محاسبه و در یک فایل excel دیگر ذخیره کند. همه مراحل انجام شده فقط گفتم من به ازای هر سوال با دستور select یکبار بانک را باز کرده و نتایج را به دست می آورم حال میخوام یکبار با دستور sql این کار را انجام بدم .
    یعنی دستور select ی میخوام که به یکبار همه جوابها با درصدشان را بتوانم ببینم .
    امبدوارم منظورم را گرفته باشید. اگه باز مشکلی هست میتوان فایل access و یا excel آنرا آپلود کنم .
    دوست عزیز بهتر است با یک مثال نوع Query را که برای بانک می فرستید را مشخص کنید و همچنین نتیجه که بانک بر می گرداند.
    البته اگر تعداد رکوردهایتان کم باشد می توانید کل رکوردها را در یک dataSet بریزید و سپس از آن استفاده کنید.
    موفق باشید

  5. #5
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709
    نقل قول نوشته شده توسط SYNDROME مشاهده تاپیک
    البته اگر تعداد رکوردهایتان کم باشد می توانید کل رکوردها را در یک dataSet بریزید و سپس از آن استفاده کنید.
    موفق باشید
    سلام
    میشه بسشتر توضیح بدید؟

  6. #6
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814

    با سلام

    شما هر بار که یک سوال را مطرح می کنید برنامه به SQL مراجعه کرده و پس از دریافت جواب پاسخ را نمایش می دهد.
    اگر شما می خواهید تعداد دفعات مراجعه را کم کنید مثلا می توانید یک سوال به شکل زیر با یک ADO مطرح کنید.

    Select * From Tbl_Name

    کلیه نام ها را در ADO می ریزد و حالا می توان فقط با امکانات مانند Filter و یا Locate به جواب داخل ADO دست یافت و شما زمانی که با متدهای فوق جستجو می کنید و دیگر برای هر سوال به SQL مراجعه نکنید.
    ولی اگر تعداد رکوردها خیلی بالا باشد با اجرای Select بالا مدت زمان زیادی طول می کشد تا اطلاعات واکشی شود.
    موفق باشید

تاپیک های مشابه

  1. نحوه استفاده از دستور count در یک کئوری استرینگ vb6
    نوشته شده توسط beautysunshine در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: چهارشنبه 01 اسفند 1386, 09:37 صبح
  2. TOP COUNT?
    نوشته شده توسط Ehsan Valinouri در بخش SQL Server
    پاسخ: 3
    آخرین پست: سه شنبه 06 شهریور 1386, 18:02 عصر
  3. نکته جالب در مورد دستور (*)count
    نوشته شده توسط حمیدرضاصادقیان در بخش SQL Server
    پاسخ: 0
    آخرین پست: چهارشنبه 29 شهریور 1385, 09:34 صبح
  4. sum , count
    نوشته شده توسط sahra_777 در بخش SQL Server
    پاسخ: 3
    آخرین پست: چهارشنبه 15 تیر 1384, 13:22 عصر
  5. (*) Count
    نوشته شده توسط در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: سه شنبه 13 آبان 1382, 19:13 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •