PDA

View Full Version : سوال: گزارشهای آماری



asiehmohammadian
چهارشنبه 24 خرداد 1391, 01:48 صبح
سلام
من یک صفحه توی بخش مدیریت سایتم دارم به نام گزارشهای آماری که اطلاعات موجوددردیتابیس و با عنوان های مختلف آمارگیری میکنه مثلا چه تعداد کاربر با مدرک تحصیلی فوق لیسانس،لیسانس و... درسایت ثبت نام کردند.
نتیجه روداخل یک گریدویو به مدیرنشون میدم وبرای این کارازکدزیر استفاده میکنم:
SqlDataAdapter da = new SqlDataAdapter("Select re_degree as 'مدرک تحصیلی', count(re_degree) as 'تعداد' from t_register group by re_degree order by re_degree desc", cn);
DataSet ds = new DataSet();
da.Fill(ds, "table");
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
public void BindData()
{
SqlDataAdapter da = new SqlDataAdapter("Select re_degree,re_how,re_maritalstatus,re_sex,count(re_ degree),count(re_how),count(re​_maritalstatus),c ount(re_sex) from t_register group by re_degree,re_how,re_maritalstatus,re_sex order by re_degree,re_province,re_city,re_maritalstatus,re_ sex desc", cn);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
حالا مشکلم اینجاست که وقتی ازبرنامه اجرامیگیرم اسم فیلدها تکرارمیشه
مثلا 2 تا فوق لیسانس و2تافوق دیپلم دارم
کسی نمیدونه باید چکارکنم

fakhravari
چهارشنبه 24 خرداد 1391, 13:09 عصر
خوب کد ها واضح نیست اما این تست کنید
SELECT DISTINCT column_name(s)
FROM table_name

asiehmohammadian
چهارشنبه 24 خرداد 1391, 13:40 عصر
ممنون این و امتحان کردم ولی جواب نمیده یعنی هیچ فرقی نمیکنه
کجای کدم واضح نیست؟

fakhravari
چهارشنبه 24 خرداد 1391, 14:12 عصر
یه نمونه خروجی که لازم دارید را مثال بزنید.
کد هایی که گذاشتین

asiehmohammadian
پنج شنبه 25 خرداد 1391, 01:07 صبح
کدودوباره نوشتم:
SqlDataAdapter da = new SqlDataAdapter("Select re_degree as 'مدرک تحصیلی', count(re_degree) as 'تعداد' from t_register group by re_degree order by re_degree desc", cn);
DataSet ds = new DataSet();
da.Fill(ds, "table");
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
public void BindData()
{
SqlDataAdapter da = new SqlDataAdapter("Select re_degree,re_how,re_maritalstatus,re_sex,count(re_ degree),count(re_how),count(re​_maritalstatus),c ount(re_sex) from t_register group by re_degree,re_how,re_maritalstatus,re_sex order by re_degree,re_province,re_city,re_maritalstatus,re_ sex desc", cn);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}

مثلا گریدویومن 2 تاستون داره یک ستون به نام مدرک تحصیلی که شامل(دکترا،فوق لیسانس،لیسانس،فوق دیپلم،دیپلم)است ویک ستونم که تعداد هرکدام ازاین فیلدهاست
ولی بااین کدی که من نوشتم وقتی خروجی میگیرم مینویسه:
فوق لیسانس 2
فوق لیسانس 10
دکترا 3
لیسانس 15
لیسانس 2
مشکل من اینجاست که باید یک فوق لیسانس باشه وجلوش تعداد کل و بنویسه ولی نمیدونم چکارکنم
خواهش میکنم کمکم کنید

A.S.Roma
پنج شنبه 25 خرداد 1391, 14:13 عصر
کدودوباره نوشتم:
SqlDataAdapter da = new SqlDataAdapter("Select re_degree as 'مدرک تحصیلی', count(re_degree) as 'تعداد' from t_register group by re_degree order by re_degree desc", cn);
DataSet ds = new DataSet();
da.Fill(ds, "table");
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
public void BindData()
{
SqlDataAdapter da = new SqlDataAdapter("Select re_degree,re_how,re_maritalstatus,re_sex,count(re_ degree),count(re_how),count(re​_maritalstatus),c ount(re_sex) from t_register group by re_degree,re_how,re_maritalstatus,re_sex order by re_degree,re_province,re_city,re_maritalstatus,re_ sex desc", cn);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}

مثلا گریدویومن 2 تاستون داره یک ستون به نام مدرک تحصیلی که شامل(دکترا،فوق لیسانس،لیسانس،فوق دیپلم،دیپلم)است ویک ستونم که تعداد هرکدام ازاین فیلدهاست
ولی بااین کدی که من نوشتم وقتی خروجی میگیرم مینویسه:
فوق لیسانس 2
فوق لیسانس 10
دکترا 3
لیسانس 15
لیسانس 2
مشکل من اینجاست که باید یک فوق لیسانس باشه وجلوش تعداد کل و بنویسه ولی نمیدونم چکارکنم
خواهش میکنم کمکم کنید
فکر می کنم مشکلتون با حرف "ی" و "ي" باشه !

fakhravari
پنج شنبه 25 خرداد 1391, 14:33 عصر
فکر می کنم مشکلتون با حرف "ی" و "ي" باشه !
#region مدیریت حروف عربی به فارسی
public static string Farsi_Replace(string Text)
{
return Text.Replace("ي", "ی").Replace("ك", "ک");
}
#endregion

fakhravari
پنج شنبه 25 خرداد 1391, 14:58 عصر
این جدول مقادیرش ثابت است ؟
چون در کل باید موضوعات جدا باشه > دکترا - لیسانس - و..
توی جدول بعدی باید کد اینها به این بخش وصل باشه.
اگر توی جدول اخری که میشه خروجی شما مقادیر موضوعات ثابت است میتوانیم به راحتی به تعداد موضوعات count بر حسب کد موضوع گرفت.

asiehmohammadian
جمعه 26 خرداد 1391, 00:52 صبح
ممنون دوستان مشکل حل شد
مشکل درتایپ بود:قهقهه:

fakhravari
جمعه 26 خرداد 1391, 01:08 صبح
برای مثال
SELECT ISNULL(COUNT(catname),0)AS Cont,catname FROM test GROUP BY catname
برای همچین اصلاعاتی

1 sav
1 savsa
2 دکترا
4 فوق لیسانس
1 لیسانس