تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اريد دمج استعلامين
#1
السلام عليكم
اريد دمج استعلامين
 الاول 
كود :
SELECT Accounting_Manual.Account_No, Accounting_Manual.Account_Name,  coins.coins_code
FROM   Accounting_Manual  LEFT JOIN coins ON Accounting_Manual.coins_No  = coins.coins_no
WHERE Accounting_Manual.Rank = 5 AND   coins.Active = True AND  Accounting_Manual.Account_Stop = False
الثاني
كود :
SELECT   Cost_Center.Center_No, Cost_Center.Center_Name

FROM Currency_Directory, Cost_Center

where cost_center.center_no= ( SELECT max(center_no) from cost_centre where type_center_main_sub=2 and stop_center=0 )
الرد }}
تم الشكر بواسطة: أشرف كريم 2
#2
ماذا تعني بدمج استعلامين ؟ ما هي النتيجة التي تتوقعها ؟
اعطي مثال على شكل الجدول الناتج مثلا
الرد }}
#3
(08-11-21, 02:37 AM)Anas Mahmoud كتب : ماذا تعني بدمج استعلامين ؟ ما هي النتيجة التي تتوقعها ؟
اعطي مثال على شكل الجدول الناتج مثلا

شوف بي اكسس كيف دمج هم
كود :
SELECT Currency_Directory .*,  Cost_Center.Center_No, Cost_Center.Center_Name

FROM Currency_Directory, Cost_Center

where cost_center.center_no= ( SELECT max(center_no) from cost_centre where type_center_main_sub=2 and stop_center=0 )
تم دمج الاستعلام  الأول و جعل له اسم مستعار باسم Currency_Directory يذهب و ينفذ الاستعلام الأول ثم يظهر النتيجة لكلا الاستعلامين
انا اريد ان اضع بدل Currency_Directory  الاستعلام كامل


الملفات المرفقة
.rar   مجلد جديد (2).rar (الحجم : 48.41 ك ب / التحميلات : 5)
الرد }}
تم الشكر بواسطة: asemshahen5 , أشرف كريم 2
#4
كود :
SELECT  Currency_Directory.*, Cost_Center.Center_No, Cost_Center.Center_Name
FROM (SELECT Accounting_Manual.Account_No, Accounting_Manual.Account_Name,  coins.coins_code
FROM   Accounting_Manual  LEFT JOIN coins ON Accounting_Manual.coins_No  = coins.coins_no
WHERE Accounting_Manual.Rank = 5 AND  coins.Active = True AND  Accounting_Manual.Account_Stop = False) as Currency_Directory, Cost_Center
where cost_center.center_no= ( SELECT max(center_no) from cost_center where type_center_main_sub=2 and stop_center=0 )

مع نصيحتي بعدم استخدام استعلام معقد بهذ الشكل انما استخدام استعلامات منفصلة
الرد }}
#5
(08-11-21, 12:14 PM)Anas Mahmoud كتب :
كود :
SELECT  Currency_Directory.*, Cost_Center.Center_No, Cost_Center.Center_Name
FROM (SELECT Accounting_Manual.Account_No, Accounting_Manual.Account_Name,  coins.coins_code
FROM   Accounting_Manual  LEFT JOIN coins ON Accounting_Manual.coins_No  = coins.coins_no
WHERE Accounting_Manual.Rank = 5 AND  coins.Active = True AND  Accounting_Manual.Account_Stop = False) as Currency_Directory, Cost_Center
where cost_center.center_no= ( SELECT max(center_no) from cost_center where type_center_main_sub=2 and stop_center=0 )

مع نصيحتي بعدم استخدام استعلام معقد بهذ الشكل انما استخدام استعلامات منفصلة

الاستعلامات المنفصلة و المخزنة لا استطيع تطبيق بعض الشروط او ارسال برميترات لها
لا اعرف كيف لو تعمل لي مثال بمرفق بكون لك شاكر بعد الله
الرد }}
تم الشكر بواسطة: Anas Mahmoud , asemshahen5 , أشرف كريم 2
#6
سأخبرك بالطريقة ان شاء الله

ستقوم بتصميم الاستعلامات بشكل منفصل كما اخبرتك سابقا

وكلما احتجت ان تضيف قيم الى شرط معين (برامتر ) اضف متغير بهذا الشكل مثلا [a] لا يهم الاسم فعلا المهم ان كل البرامترات تكون باسامي مختلفة 

   

   

الان نأتي في الكود ونقوم بعمل الاستعلام بشكل طبيعي ومن ثم نضيف البرامترات

كود :
       Dim dt As New DataTable
       Using conn As New OleDbConnection(ConnectionString)
           Using cmd As New OleDbCommand("Select * from MasterQuery", conn)
               Using da As New OleDbDataAdapter(cmd)
                   cmd.Parameters.AddWithValue("param1", 1)
                   cmd.Parameters.AddWithValue("param2", "Qatari Ryal")

                   da.Fill(dt)
               End Using
           End Using
       End Using
       DataGridView1.DataSource = dt

لاحظ ان الاسم غير مهم اطلاقا المهم هو الترتيب 

   

وكذلك ليس شرطا ان تكون البرامترات كلها في استعلام واحد بل حتى لو كانت في الاستعلامات الفرعية

   

   

قمت بتعديل PopulateDataGridView للتسهيل مثل هذا الامر 


كود :
   Sub PopulateDataGridView(dgv As DataGridView, query As String, ParamArray params() As Object)
       Dim dt As New DataTable
       Using conn As New OleDbConnection(ConnectionString)
           Using cmd As New OleDbCommand(query, conn)
               Using da As New OleDbDataAdapter(cmd)
                   For Each p In params
                       cmd.Parameters.AddWithValue("param", p)
                   Next
                   da.Fill(dt)
               End Using
           End Using
       End Using
       dgv.DataSource = dt
   End Sub

الان الاستخدام سهل جدا 

كود :
PopulateDataGridView(DataGridView1, "Select * from MasterQuery", "1", "Qatari Ryal")

لو اعطيتني تفاصيل الجداول ربما استطعنا تبسيط الاستعلامات وتجزيئها ان شاء الله
الرد }}
تم الشكر بواسطة: asemshahen5 , بسام محمدغانم , أشرف كريم 2
#7
(09-11-21, 12:47 PM)Anas Mahmoud كتب : سأخبرك بالطريقة ان شاء الله

ستقوم بتصميم الاستعلامات بشكل منفصل كما اخبرتك سابقا

وكلما احتجت ان تضيف قيم الى شرط معين (برامتر ) اضف متغير بهذا الشكل مثلا [a] لا يهم الاسم فعلا المهم ان كل البرامترات تكون باسامي مختلفة 





الان نأتي في الكود ونقوم بعمل الاستعلام بشكل طبيعي ومن ثم نضيف البرامترات

كود :
       Dim dt As New DataTable
       Using conn As New OleDbConnection(ConnectionString)
           Using cmd As New OleDbCommand("Select * from MasterQuery", conn)
               Using da As New OleDbDataAdapter(cmd)
                   cmd.Parameters.AddWithValue("param1", 1)
                   cmd.Parameters.AddWithValue("param2", "Qatari Ryal")

                   da.Fill(dt)
               End Using
           End Using
       End Using
       DataGridView1.DataSource = dt

لاحظ ان الاسم غير مهم اطلاقا المهم هو الترتيب 



وكذلك ليس شرطا ان تكون البرامترات كلها في استعلام واحد بل حتى لو كانت في الاستعلامات الفرعية





قمت بتعديل PopulateDataGridView للتسهيل مثل هذا الامر 


كود :
   Sub PopulateDataGridView(dgv As DataGridView, query As String, ParamArray params() As Object)
       Dim dt As New DataTable
       Using conn As New OleDbConnection(ConnectionString)
           Using cmd As New OleDbCommand(query, conn)
               Using da As New OleDbDataAdapter(cmd)
                   For Each p In params
                       cmd.Parameters.AddWithValue("param", p)
                   Next
                   da.Fill(dt)
               End Using
           End Using
       End Using
       dgv.DataSource = dt
   End Sub

الان الاستخدام سهل جدا 

كود :
PopulateDataGridView(DataGridView1, "Select * from MasterQuery", "1", "Qatari Ryal")

لو اعطيتني تفاصيل الجداول ربما استطعنا تبسيط الاستعلامات وتجزيئها ان شاء الله

اشكررررررررررررررررررررررررررررررررررررك جداااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااا
الرد }}
تم الشكر بواسطة: أشرف كريم 2 , asemshahen5


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اريد امثلة على هذه الدوال floor , substr , instr , replce في الاوراكل غدير الصليحي 0 344 14-12-21, 12:51 PM
آخر رد: غدير الصليحي
  [Acces2010] اريد تعديل الكود للاكسس بسام محمدغانم 0 446 13-10-21, 09:14 PM
آخر رد: بسام محمدغانم
  اريد ربط 3 جداول (relation ship) فى sql server سلام و محبه 0 784 23-01-21, 08:10 PM
آخر رد: سلام و محبه
  اريد ترقية قاعدة بيانات برنامجي فإلى ايهم تقترحوا علي alfaiz678 5 2,323 22-11-20, 10:10 PM
آخر رد: sendbad100
  اريد عمل تواصل بين الادارات عن طريق ال SQL Serverو الدوت نت الحزين اوى 1 976 02-07-20, 09:47 AM
آخر رد: kiki
  اريد فكرة الطرح والجمع من داخل قاعدة البيانات مراد بورجي 2 1,833 28-12-19, 07:41 PM
آخر رد: مراد بورجي
  [SQL] اريد استعلام يظهر لي الناتج بهذه الصورة alfaiz678 8 2,629 30-11-19, 12:16 PM
آخر رد: alfaiz678
  [سؤال] اخواني السلام عليكم ورحمة الله انا مبتدي في البرمجة اريد كود ربط sql server 2014 mohamedhota 1 1,616 04-04-19, 07:55 PM
آخر رد: elgokr
  [سؤال] اريد كود لتوليد ارقام عشوئية issamsaidd 8 3,092 02-01-19, 08:33 AM
آخر رد: issamsaidd
  [سؤال] اريد جعل قاعدة البينات تقبل ادخل لاكثر من يوزر فى نفس الوقت issamsaidd 2 1,744 30-12-18, 08:33 PM
آخر رد: issamsaidd

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم