Ali_M.Eghbaldar
چهارشنبه 06 مرداد 1389, 20:03 عصر
سلام به همه
این چند روز یکی از دوستان یه برنامه ای ازم می خواست که با توضیحاتم مشکلش حل نشد
تصمیم گرفتم یه نمونه کوچیک برتش بنویسم تا مشکلش حل شه
براساس پست:
http://barnamenevis.org/forum/showthread.php?p=1050143#post1050143
مواد لازم: :لبخند:
SQL Server 2005 یک عدد
IIS و مخلفات به مقدار لازم :قهقهه:
گفتم بجای Private کردن Public کنم تا اگه کسی خواست استفاده کنه
اگه برنامه کوچیکه باید ببخشید چون اصلا وقت نداشتم بزرگترش کنم :لبخندساده:
توضیح : برنامه ای است که نمره ها را براساس سه اصل:
جواب درست عدد 1
جواب غلط عدد -1
جواب نزده عدد 0
درصد را محاسبه می کند .
از اونجایی که علاقه به SQL دارم تمام محاسبات بوسیله یک StoreProcedure انجام میشه بنام Calc
Script SQL بصورت زیر است:
/*
select * from tbl_grant
select code_applicant,count(*) from tbl_grant where [nomre]=-1 group by [code_applicant]--تعداد غلط های داوطلب
select code_applicant,count(*) from tbl_grant where [nomre]=1 group by [code_applicant] --درست های هر داوطلب
select count(*) from tbl_grant --تعدد کل سوالات
*/
--------------------------
declare @code_applicant bigint
set @code_applicant=2
Declare @Correct bigint
Declare @wrong bigint
Declare @All bigint
set @All=(select count(*) from tbl_grant where code_applicant=@code_applicant)
set @wrong = (select count(*) from tbl_grant where [nomre]=-1 and code_applicant=@code_applicant group by [code_applicant])
set @Correct=(select count(*) from tbl_grant where [nomre]=1 and code_applicant=@code_applicant group by [code_applicant])
If (@wrong is null)
set @wrong=0
If (@Correct is null)
set @Correct=0
select code_applicant,(((3*@Correct)-@wrong)*100)/(3*@All) from tbl_grant where code_applicant=@code_applicant
group by [code_applicant]ساختار جدول :
http://tehranpic.net/images/gvs40xtaexlq7h87fk9.jpg
محتوای از قبل ریخته شده در جدول:
http://tehranpic.net/images/l8js0vwf24x3js8jsnu6.jpg
و محیط برنامه:
http://tehranpic.net/images/6ugeyzdv89b5bpas4vh.jpg
در TextBox کد داوطلب قرار میگیرد
---------------
اگه مشکلی بود مطرح کنید
موفق باشید
این چند روز یکی از دوستان یه برنامه ای ازم می خواست که با توضیحاتم مشکلش حل نشد
تصمیم گرفتم یه نمونه کوچیک برتش بنویسم تا مشکلش حل شه
براساس پست:
http://barnamenevis.org/forum/showthread.php?p=1050143#post1050143
مواد لازم: :لبخند:
SQL Server 2005 یک عدد
IIS و مخلفات به مقدار لازم :قهقهه:
گفتم بجای Private کردن Public کنم تا اگه کسی خواست استفاده کنه
اگه برنامه کوچیکه باید ببخشید چون اصلا وقت نداشتم بزرگترش کنم :لبخندساده:
توضیح : برنامه ای است که نمره ها را براساس سه اصل:
جواب درست عدد 1
جواب غلط عدد -1
جواب نزده عدد 0
درصد را محاسبه می کند .
از اونجایی که علاقه به SQL دارم تمام محاسبات بوسیله یک StoreProcedure انجام میشه بنام Calc
Script SQL بصورت زیر است:
/*
select * from tbl_grant
select code_applicant,count(*) from tbl_grant where [nomre]=-1 group by [code_applicant]--تعداد غلط های داوطلب
select code_applicant,count(*) from tbl_grant where [nomre]=1 group by [code_applicant] --درست های هر داوطلب
select count(*) from tbl_grant --تعدد کل سوالات
*/
--------------------------
declare @code_applicant bigint
set @code_applicant=2
Declare @Correct bigint
Declare @wrong bigint
Declare @All bigint
set @All=(select count(*) from tbl_grant where code_applicant=@code_applicant)
set @wrong = (select count(*) from tbl_grant where [nomre]=-1 and code_applicant=@code_applicant group by [code_applicant])
set @Correct=(select count(*) from tbl_grant where [nomre]=1 and code_applicant=@code_applicant group by [code_applicant])
If (@wrong is null)
set @wrong=0
If (@Correct is null)
set @Correct=0
select code_applicant,(((3*@Correct)-@wrong)*100)/(3*@All) from tbl_grant where code_applicant=@code_applicant
group by [code_applicant]ساختار جدول :
http://tehranpic.net/images/gvs40xtaexlq7h87fk9.jpg
محتوای از قبل ریخته شده در جدول:
http://tehranpic.net/images/l8js0vwf24x3js8jsnu6.jpg
و محیط برنامه:
http://tehranpic.net/images/6ugeyzdv89b5bpas4vh.jpg
در TextBox کد داوطلب قرار میگیرد
---------------
اگه مشکلی بود مطرح کنید
موفق باشید