PDA

View Full Version : آبدیت یک ستون از دیتابیس ...



ehsan-68
یک شنبه 08 بهمن 1391, 17:20 عصر
سلام به دوستان ...

من دوتا ستون دارم در دیتابیسم البته جدولش ... :لبخند:

یکی نام یکی میانگین

میخوام زمانیکه یک نام جدید اضافه میکنم کل ستون میانگین آبدیت بشه

یعنی :

1 - علی 15.5
2 - احمد 15.5

زمانیکه میخوام سعیدو اضافه کنم و عدد 20 رو وارد میکنم کل ستون میانگین بشه 20

ghayour
یک شنبه 08 بهمن 1391, 17:33 عصر
سلام
یکمی سوالت نامفهومه مخصوصا این:

زمانیکه میخوام سعیدو اضافه کنم و عدد 20 رو وارد میکنم کل ستون میانگین بشه 20
اگه منظورت اینه کسی رو که اضافه کردی فورا در دیتاگرید نمایش داده بشه که باید کد گرفتن اطلاعات از دیتابیس رو بذاری.
و اگه منظورت اینه که میانگین ستون نمرات را بگیری(مثلا یک نفر شده 15 و دیگری 17 آن وقت میانگین میشه 16) میتونی از این تابع استفاده کنی:
Public Function sum() As String
Dim sumo As Long
For i = 0 To dgvOpenKarkard.RowCount - 1
sumo += dgvOpenKarkard.Item("نمرات", i).Value
Next
sum = sumo
End Function

ehsan-68
یک شنبه 08 بهمن 1391, 18:47 عصر
نه دوست خوبم ..

ببین :

1 - علی 20
حالا من اومدم نمره احمدو که شده 18 وارد کردم باید جدولم مثل زیر بشه

1 - علی 19
2 - احمد 19

یعنی بیاد یک ردیف اضافه کنه و ستون میانگینو آبدیت بکنه ...

برای میانگین گیریش مشکل ندارم ...

فرید نجفلو
یک شنبه 08 بهمن 1391, 19:37 عصر
دوست عزیز این دیگه چه کاریه؟
کل اصول پایگاه داده رو داری زیر سوال می بری!
بهتره اسم ها رو نزنی و فقط یه رکود داشته باشی که میانگین بتاشه، وقتی هم یه عدد دارن دیگه به چه دردی می خوره!
شما باید نمرات تمام افراد رو به همون شکا ذخیره کنید و نهایتا اگه خواستید میانگین بگیری یه Select ساده میزنی
SELECT AVG([Nomre]) FROM tblNomerat

در ضمن اگه برای جواب سوالتون هم کنجکاوید بعد از دستور INSERT که میزنید یه UPDATE بدون شرط هم بزنید:

UPDATE tblNomerat SET [Nomre] = 19

ehsan-68
دوشنبه 09 بهمن 1391, 19:56 عصر
خوب حالا اگه بخوام همین دستورو (میانگین گیری بر اساس چندتا شرط) در قسمت کد نویسی کریستال وارد کنم با شرط باید چیکار کنم ؟

فرید نجفلو
دوشنبه 09 بهمن 1391, 20:28 عصر
خوب حالا اگه بخوام همین دستورو (میانگین گیری بر اساس چندتا شرط) در قسمت کد نویسی کریستال وارد کنم با شرط باید چیکار کنم ؟
تو هر دو مورد تعیین منبع گزارش (ارسال دیتایست یا دیتایبل و... و یا نوشتن دستور داخل گزارش) فقط یه شرط به آخر همون دستور اضافه می کنی:
SELECT AVG([Nomre]) FROM tblNomerat WHERE ID IN(1,2,3,4,9,7,10)