منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : إيجاد محموع قيم عمود ما بين تاريخين ؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم

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


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

أرفقت صورة توضح المطلوب بصورة أوضح
(21-12-14, 04:20 AM)momiana1 كتب : [ -> ]السلام عليكم

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


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

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

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


ممكن يفيدك هذا الكود
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 

[/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 

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

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

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

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

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

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

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

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

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

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


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

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

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

أخي الوليد

العمود 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 لا تستخدم مع الأرقام.
طيب أستعمل أيه مع الأرقام ،،،

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

إذا كان (العمود 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 

الصفحات : 1 2