تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] استعلام متقدم
#1
السلام عليكم

كل عام وانتم بخير جميعا بمناسبة شهر رمضان المبارك

لي طلب بخصوص استعلام متقدم

الاستعلام خاص بتجميع الارصدة عن اشهر السنة

دة الجدول بقاعدة البيانات

   

ما اريدة ناتج الاستعلام كالاتي :-

1- العمود الاول يشمل الشهر والسنة  4/2019  ,   5/2019 وفقا للشهور والايام بقاعدة البيانات
2- العمود الثاني يشمل إجمالي الايام التي تم بها عمليات بالشهر
3- العمود الثالث يشمل باقي مجموع ايام الشهر  التي لم يتم اي عملية بها
4- العمود الرابع يشمل اجمالي الارباح بأيام الشهر
5- العمود الخامس يشمل اجمالي الخسائر التي تمت بالايام بالشهر
6- العمود السادس يشمل اجمالي الرصيد بفرق اجمالي الارباح  واجمالي الخسائر عن الخسائر

7 - ان تتم العمليات وفقا لنتيجة البحث من تاريخ يتم من 2 DateTimePicker  لتحديد الفترة فاذاكان تاريخ البحث من شهر لشهر اخر يتم تجميع العمليات ويظهر الشهر
4/2019  بالعمود الاول واذا كان البحث  عن عمليات لايام شهر فقط يظهر بالعمود الاول بدل من الا شهر  والسنة الايام واسم الشهر   1/4/2019 واجمالي العمليات لكل يوم من ايام الشهر

النتيجةالنهائية بعد البحث


   
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته

فقط قم باستخدام الاستعلام التالى
كود :
SELECT
Format([treasur_date],"mm\,yyyy") AS `عن شهر`,
Count(Format([treasur_date],"dd")) AS `أيام العمل`,
(Max(Format(DateSerial(Year([treasur_date]),Month([treasur_date])+1,1)-1, "dd")) - Count(Format([treasur_date],"dd"))) AS `أيام بدون`,
Sum(treasur_profit) AS `آجمالي الربح`,
Sum(treasur_loss) AS `آجمالي الخسائر`,
(Sum(treasur_profit) - Sum(treasur_loss)) AS `الرصيد`
FROM treasur_tb
GROUP BY Format([treasur_date],"mm\,yyyy")

بهذا الاستعلام انت لا تحتاج الى تعديل المسميات فى عمود الداتا جريد
او تعديل اى شى فى ادوات الفورم
فقط استخدم الاتسعلام وسيتم عرض النتائج طبقاً للصورة التى لديك

كود الاستعلام لا يحتاج الى اى تغيرات فى المسميات او ما شبه
تم استخدام المسميات طبقاً لما هو موضح لديك بصورة الجدول بقاعدة البيانات

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
#3
(11-05-19, 03:46 PM)elgokr كتب :
وعليكم السلام ورحمة الله وبركاته

فقط قم باستخدام الاستعلام التالى
كود :
SELECT
Format([treasur_date],"mm\,yyyy") AS `عن شهر`,
Count(Format([treasur_date],"dd")) AS `أيام العمل`,
(Max(Format(DateSerial(Year([treasur_date]),Month([treasur_date])+1,1)-1, "dd")) - Count(Format([treasur_date],"dd"))) AS `أيام بدون`,
Sum(treasur_profit) AS `آجمالي الربح`,
Sum(treasur_loss) AS `آجمالي الخسائر`,
(Sum(treasur_profit) - Sum(treasur_loss)) AS `الرصيد`
FROM treasur_tb
GROUP BY Format([treasur_date],"mm\,yyyy")

بهذا الاستعلام انت لا تحتاج الى تعديل المسميات فى عمود الداتا جريد
او تعديل اى شى فى ادوات الفورم
فقط استخدم الاتسعلام وسيتم عرض النتائج طبقاً للصورة التى لديك

كود الاستعلام لا يحتاج الى اى تغيرات فى المسميات او ما شبه
تم استخدام المسميات طبقاً لما هو موضح لديك بصورة الجدول بقاعدة البيانات

تحياتى لك
وتمنياتى لك التوفيك

في مشكلة بسيطة بالجزء دة كدة هيعد الخلايا او عدد العمليات يعني لو ايام العمل حصل عمليتين ربح ليوم واحد يبقي اليوم مكرر انا عايز اليوم الواحد لو حصل فية اكتر من عملية واحدة يصبح ايام العمل 1 يعني تجمع عمليات اليوم ولكن يظهر ايام العمل بدون تكرار


كود :
Count(Format([treasur_date],"dd")) AS `أيام العمل`,



[url=https://www.w3schools.com/sql/sql_distinct.asp][/url]
الرد }}}
تم الشكر بواسطة:
#4
ولا يهمك اليك الكود لتجنب تلك المشكلة
وتذكر لا تعدل كذلك على كود الاستعلام الا اذا كنت
على دراية كيفية التعامل معه والتعديل عليه

كود :
SELECT
Format(Tre.MyDate,"mm\,yyyy") AS `عن شهر`,
Count(Format(Tre.MyDay,"dd")) AS `أيام العمل`,
(Max(Format(DateSerial(Year(Tre.MyDate),Month(Tre.MyDate)+1,1)-1, "dd")) - Count(Format(Tre.MyDay,"dd"))) AS `أيام بدون`,
Sum(Tre.Profit) AS `آجمالي الربح`,
Sum(Tre.Loss) AS `آجمالي الخسائر`,
(Sum(Tre.Profit) - Sum(Tre.Loss)) AS `الرصيد`
FROM (SELECT
max(treasur_date) As MyDate,
Format([treasur_date],"dd\,mm") As MyDay,
Sum(treasur_profit) As Profit,
Sum(treasur_loss) As Loss
FROM treasur_tb
GROUP BY Format([treasur_date],"dd\,mm")) As Tre
GROUP BY Format(Tre.MyDate,"mm\,yyyy")

صورة تاكيد صحة عمل كود الاستعلام


فكما تشاهد الجدول يحتوى على يوم مكرر فى شهر 4 و 5
وبدل ما يجمع الايام المكررة تم جمع المبالغ فقط
ليعرض 2 يوم فى شهر 4 بدلاً من 3
وكذلك 3 يوم فى شهر 5  بدلاً من 4

ولاحظ الاجمالى لجميع الربح والخسارة تعمل بدون ادني مشكلة

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: حريف برمجة , asemshahen5 , محمد اسماعيل
#5
(11-05-19, 09:19 PM)elgokr كتب :
ولا يهمك اليك الكود لتجنب تلك المشكلة
وتذكر لا تعدل كذلك على كود الاستعلام الا اذا كنت
على دراية كيفية التعامل معه والتعديل عليه

كود :
SELECT
Format(Tre.MyDate,"mm\,yyyy") AS `عن شهر`,
Count(Format(Tre.MyDay,"dd")) AS `أيام العمل`,
(Max(Format(DateSerial(Year(Tre.MyDate),Month(Tre.MyDate)+1,1)-1, "dd")) - Count(Format(Tre.MyDay,"dd"))) AS `أيام بدون`,
Sum(Tre.Profit) AS `آجمالي الربح`,
Sum(Tre.Loss) AS `آجمالي الخسائر`,
(Sum(Tre.Profit) - Sum(Tre.Loss)) AS `الرصيد`
FROM (SELECT
max(treasur_date) As MyDate,
Format([treasur_date],"dd\,mm") As MyDay,
Sum(treasur_profit) As Profit,
Sum(treasur_loss) As Loss
FROM treasur_tb
GROUP BY Format([treasur_date],"dd\,mm")) As Tre
GROUP BY Format(Tre.MyDate,"mm\,yyyy")

صورة تاكيد صحة عمل كود الاستعلام


فكما تشاهد الجدول يحتوى على يوم مكرر فى شهر 4 و 5
وبدل ما يجمع الايام المكررة تم جمع المبالغ فقط
ليعرض 2 يوم فى شهر 4 بدلاً من 3
وكذلك 3 يوم فى شهر 5  بدلاً من 4

ولاحظ الاجمالى لجميع الربح والخسارة تعمل بدون ادني مشكلة

تحياتى لك
وتمنياتى لك التوفيق

بارك اللَّة  فيك

تم اتمام الاجابة كاملة
الرد }}}
تم الشكر بواسطة: elgokr
#6
لى ولك وللجميع يارب

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: حريف برمجة


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  استعلام من عدة جداول لقاعدة بيانات اكسس Adel27213 1 702 07-11-23, 08:27 AM
آخر رد: justforit
  استفسار عن استعلام في دالة INSTR غدير الصليحي 0 1,001 14-12-21, 02:22 PM
آخر رد: غدير الصليحي
  استفسار عن استعلام في اوراكل مهم اليوم معي اختبار لغدا غدير الصليحي 4 1,634 14-12-21, 12:42 PM
آخر رد: غدير الصليحي
  استعلام يرجع اسماء الاعمدة و نوع البيانات في جدول معين بسام محمدغانم 0 964 23-10-21, 01:43 AM
آخر رد: بسام محمدغانم
  ممكن طلاب استعلام بدون تكرار لبيانات بسام محمدغانم 0 1,433 26-12-19, 07:06 AM
آخر رد: بسام محمدغانم
  [SQL] اريد استعلام يظهر لي الناتج بهذه الصورة alfaiz678 8 3,394 30-11-19, 12:16 PM
آخر رد: alfaiz678
  استعلام في الأكسيس Adilo idabdellah 0 1,257 16-09-19, 09:16 PM
آخر رد: Adilo idabdellah
  كيف اعمل استعلام لحقول معينه متشابهه من عدة جداول aftfm 0 1,593 24-05-18, 09:16 PM
آخر رد: aftfm
  [سؤال] المساعدة - بجملة استعلام بين عدة جداول safalo 3 2,231 14-08-17, 02:06 AM
آخر رد: safalo
  المساعدة في عمل استعلام قاعدة بيانات sqlserver djelloul 0 1,782 17-04-17, 07:13 PM
آخر رد: djelloul

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


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