منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] إيجاد محموع قيم عمود ما بين تاريخين ؟ - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [سؤال] إيجاد محموع قيم عمود ما بين تاريخين ؟ (/showthread.php?tid=10965)

الصفحات: 1 2


إيجاد محموع قيم عمود ما بين تاريخين ؟ - momiana1 - 21-12-14

السلام عليكم

عندي جدول به الأعمدة
ID
m1
m2
m3
bda8 (التاريخ)


أريد  مجموع القيم لكل عمود ( m1 , m2 , m3 ) ما بين تاريخين معيين !

أرفقت صورة توضح المطلوب بصورة أوضح


RE: إيجاد محموع قيم عمود ما بين تاريخين ؟ - mudz - 21-12-14

(21-12-14, 04:20 AM)momiana1 كتب : السلام عليكم

عندي جدول به الأعمدة
ID
m1
m2
m3
bda8 (التاريخ)


أريد  مجموع القيم لكل عمود ( m1 , m2 , m3 ) ما بين تاريخين معيين !

أرفقت صورة توضح المطلوب بصورة أوضح
دامك تعرف تبرمج اكيد تعرف استخدام دالة SUM فهي سهله الاستخدام Heart


RE: إيجاد محموع قيم عمود ما بين تاريخين ؟ - الوليد ☺ - 21-12-14


السلام عليكم ورحمة الله


ممكن يفيدك هذا الكود
PHP كود :
Dim connString As String "Provider=....."

Dim sqlString As String _
    
" SELECT SUM([m1]) AS [Total1] " _
    
"      , SUM([m2]) AS [Total2] " _
    
"      , SUM([m3]) AS [Total3] " _
    
" FROM [الجدول]" _
    
" WHERE [bda8] BETWEEN @date1 AND @date2 "
Using da As New OleDbDataAdapter(sqlStringconnString)
    
da.SelectCommand.Parameters.AddWithValue("@date1"Me.DateTimePicker1.Value.Date)
    
da.SelectCommand.Parameters.AddWithValue("@date2"Me.DateTimePicker2.Value.Date)
    
Using dt As New DataTable

        
If da.Fill(dt) > 0 Then
            MsgBox
(dt.Rows(0).Item("Total1"))
            
MsgBox(dt.Rows(0).Item("Total2"))
            
MsgBox(dt.Rows(0).Item("Total3"))
        
End If

    
End Using
End Using 




RE: إيجاد محموع قيم عمود ما بين تاريخين ؟ - momiana1 - 21-12-14

[/quote]
دامك تعرف تبرمج اكيد تعرف  استخدام دالة SUM فهي سهله الاستخدام Heart
[/quote]

أشكرك على المساعدة Heart

(21-12-14, 06:50 AM)الوليد ☺ كتب :
السلام عليكم ورحمة الله


ممكن يفيدك هذا الكود

PHP كود :
Dim connString As String "Provider=....."

Dim sqlString As String _
    
" SELECT SUM([m1]) AS [Total1] " _
    
"      , SUM([m2]) AS [Total2] " _
    
"      , SUM([m3]) AS [Total3] " _
    
" FROM [الجدول]" _
    
" WHERE [bda8] BETWEEN @date1 AND @date2 "
Using da As New OleDbDataAdapter(sqlStringconnString)
 
   da.SelectCommand.Parameters.AddWithValue("@date1"Me.DateTimePicker1.Value.Date)
 
   da.SelectCommand.Parameters.AddWithValue("@date2"Me.DateTimePicker2.Value.Date)
 
   Using dt As New DataTable

        If da
.Fill(dt) > 0 Then
            MsgBox
(dt.Rows(0).Item("Total1"))
 
           MsgBox(dt.Rows(0).Item("Total2"))
 
           MsgBox(dt.Rows(0).Item("Total3"))
 
       End If

 
   End Using
End Using 

أخي الوليد بالطبع أفدتني كثيرًا ، جزاك الله كل خير


RE: إيجاد محموع قيم عمود ما بين تاريخين ؟ - momiana1 - 23-12-14

سؤال آخر في نفس النطاق

لو عندي شرط مثل التالي
PHP كود :
WHERE PID LIKE '" & TextBox10.Text & "'" 

وأريد أن إضيفه للكود التالي بحيث تكون العملية بها شرطين لابد من تحقيقهم
حاولت أضيفه بس تطلع رسالة خطأ عند التنفيذ

PHP كود :
           " SELECT SUM([pr2]) AS [Total1] " _
            
" FROM [mate] WHERE po2= True" 



RE: إيجاد محموع قيم عمود ما بين تاريخين ؟ - الوليد ☺ - 23-12-14


السلام عليكم ورحمة الله

إذا كان PID نوعه رقم لا تضع علامة ' '

وبعدين الأفضل استخدام البارامترات لتمرير البيانات لجملة الاستعلام.




RE: إيجاد محموع قيم عمود ما بين تاريخين ؟ - momiana1 - 23-12-14

إقتباس :وبعدين الأفضل استخدام البارامترات لتمرير البيانات لجملة الاستعلام.

أخي الوليد ، لو عندك وقت ممكن توضحلي أكثر !!! مازلت مبتدئ Sad


RE: إيجاد محموع قيم عمود ما بين تاريخين ؟ - الوليد ☺ - 24-12-14


السلام عليكم ورحمة الله


البارامترات مثل اللي في الكود في الرد #3

وبعدين سؤالك الأخير أنت وضعت 2 WHERE فما فهمت عليك!

وبعدين LIKE لا تستخدم مع الأرقام.




RE: إيجاد محموع قيم عمود ما بين تاريخين ؟ - momiana1 - 25-12-14

أخي الوليد

العمود po2 عبارة عن checkbox
العمود PID عبارة عن رقم البند وهو غير تسلسلي ( يعنى ممكن يتكرر ) لنفس البند

المهم أنا عملت اللي أنت قلت عليه ولغيت علامة ' ' وتمت العملية بنجاح
أهم شيء يكون ترتيب الشروط حسب ترتيب الأعمدة في قاعدة البيانات

وهذا الكود بعد التعديل
PHP كود :
Dim mom As String _
            
" SELECT SUM([pr2]) AS [Total3] " _
            
" FROM [mate] WHERE PID like " TextBox10.Text " AND po2 = True"
 
       Using da As New OleDbDataAdapter(momconnectionstring)

 
           Using dt As New DataTable

                If da
.Fill(dt) > 0 Then
                    TextBox3
.Text = (dt.Rows(0).Item("Total3"))
 
               End If

 
           End Using
        End Using 

أنا كنت حاب أعرف طريقة الباراميترات إذا كانت هى أفضل وأسهل ، لو عندك مواضيع أو كتب  أعطيني الرابط وأنا أتولى المهمة بنفسي

إقتباس :وبعدين LIKE لا تستخدم مع الأرقام.
طيب أستعمل أيه مع الأرقام ،،،


RE: إيجاد محموع قيم عمود ما بين تاريخين ؟ - الوليد ☺ - 25-12-14


السلام عليكم ورحمة الله

إذا كان (العمود po2 عبارة عن checkbox) فما ينفع معها SUM لأن sum تستخدم لمعرفة مجموع مبالغ أو كميات يعني أرقام

الأرقام تستخدم معها = أو < أو > أو <= أو >= وفيه غيرها

(كنت حاب أعرف طريقة الباراميترات) قلت لك البارامترات مثل الرد #3 لكن راح أعيد لك الكود بعد التعديل و(هى أفضل وأسهل)
وممكن تعمل بحث في المنتدى وحتلاقي مواضيع كثيره جداً
وحتقي في الكود كلمة (Parameters) وجملة الاسكويل يشار لها بي (@)

هنا استخدمنا COUNT يعني عدد الأسطر الناتجة مع الشروط المحددة، أعتقد هذا ما تريده
خصوصاً وانت تقول (العمود PID عبارة عن رقم البند وهو غير تسلسلي ( يعنى ممكن يتكرر ) لنفس البند)

PHP كود :
Dim sqlString As String _
    
" SELECT COUNT([pr2]) AS [Total3] " _
    
" FROM [mate] " _
    
" WHERE ([PID]=@pid) AND ([po2]=@po2) "
' وضعنا كل شرط بين قوسين للتنظيم '

Using da As New OleDbDataAdapter(sqlStringconnString)
' لاحظ ترتيب البارامترات هو نفس ترتيب تواجدها في جملة الاسكويل '
    
da.SelectCommand.Parameters.AddWithValue("@pid"Val(TextBox10.Text)) ' Val لأنه رقم '
    
da.SelectCommand.Parameters.AddWithValue("@po2"True)

    
Using dt As New DataTable
        
If da.Fill(dt) > 0 Then
            TextBox3
.Text = (dt.Rows(0).Item("Total3"))
        
End If
    
End Using

End Using