تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] الطرح من القيمة null و الطرح من قيمة في جدول آخر
#1
بسم الله الرحمن الرحيم


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

أعمل على vb.net وقواعد بيانات sql server

لدي مشكلة اتوقع انها بسيطة لكنها استعصت علي

مشكلتي بكل بساطة عندما اقوم بعملية طرح لقيمتين من جدولين مربوطين ببعض تتم العملية بنجاح

لكن المشكلة عندما تكون إحدى القيمتين null يعطي نتيجة 0  لماذا؟؟!!

وكذلك إذا كان السجل في الجدول الأول لا يوجد له نظير في الجدول الثاني يعطي نتيجة 0 لماذا؟؟!!
الرد }}}
تم الشكر بواسطة: أبو عمر
#2
وعليكم السلام ورحمة الله وبركاته

أمامك حلين

الأول وضع قيمة افتراضية (صفر) Default value للأعمدة الرقمية في قاعدة البيانات.

الثاني في الاستعلام يتم تحويل null إلى الرقم صفر مثل
كود :
SELECT COALESCE(column1,0) + COALESCE(column2,0) AS value
FROM table1

الحل الأول مريح عند كتابة الاستعلامات لأنه لن تكون حاجة لتحويل null


(وكذلك إذا كان السجل في الجدول الأول لا يوجد له نظير في الجدول الثاني يعطي نتيجة 0 لماذا؟؟!!) غير مفهومة
الرد }}}
#3
null ليست قيمة
null ليست صفر
لهذا يجب التحقق من الحقل هل هو null أم لا قبل الحساب

مرجع: https://msdn.microsoft.com/en-us/library/ms188795.aspx
الرد }}}
#4
Null = باختصار حالة عدم
كما أسلف محمد كريم هي ليست قيمة
بل هي حالة
حالة الحقل عدم لا قيمة نصية ولا عددية
للتفادى هذه المشكلة اعمل كما قال الاخ ممدوح
خصوصا الأول اذا كنت مبتديء
بالتوفيق
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
#5
شكرا للأخ ممدوح
شكرا للأخ محمد كريم
شكرا للأخ أبوعمر
افدتوني في النقطة الأولى
لكن بخصوص النقطة الثانية كيف الحل؟؟
النقطة الثانية:
وكذلك إذا كان السجل في الجدول الأول لا يوجد له نظير في الجدول الثاني يعطي نتيجة 0 لماذا؟؟!!
مثال
اذا كان عندي جدول للعملاء وفيه (رقم العميل/ اسم العميل / اجمالي المديونيات على العميل)
وعندي جدول ثاني لدفعات العملاء وفيه ( رقم الدفعة / المبلغ / رقم العميل )
طبعا الجدولين مربوطين برقم العميل
اذا كان يوجد عميل عليه مديونية ولم يسدد أي دفعة فبالتأكيد لن يكون له سجل في جدول الدفعات
وعندما نريد أن نحسب (اجمالي المديونيات على العميل - اجمالي الدفعات ) راح يعطي نتيجة خطأ لأن العميل غير موجود بالأساس في جدول دفعات العملاء
كيف اجعل البرنامج اذا ما حصل سجل للعميل في جدول الدفعات يعتبر اجمالي الدفعات (0) ؟؟
الرد }}}
تم الشكر بواسطة:
#6
طيب لتفادي المشاكل المفروض نتحقق اولا من وجود سجلات للعميل في جدول الدفعات قبل الاستعلام عن قيمة الدفعات والتي تساوي null في هذه الحالة

في استعلامات sql يمكننا تحديد قيمة افتراضية لارجاعها في حالة عدم تحقق شرط معين داخل الاستعلام
يعني في الاستعلام لو لم يجد معاملة للعميل داخل جدول الدفعات يرجع لنا قيمة 0
وهذا ما وضحه الاخ ممدوح

ربما انت بحاجة الى التعرف على EXISTS و NOT EXISTS لتساعدك على التحكم في شروط الاستعلام


روابط قد تفيدك :
http://codereview.stackexchange.com/ques...ault-value
http://weblogs.sqlteam.com/mladenp/archi...60210.aspx
الرد }}}
#7
شكرا لكم جزيلا
جربت COALESCE وضبطت معي بحيث إذا لم يجد تسجيل في الجدول الاخر يخصم من صفر

شكرا لكم
الرد }}}
تم الشكر بواسطة:
#8
واجهتني مشكلة في نفس الموضوع بس عندما اعمل view من جدولين في sql server لا يقوم الview بعرض جميع السجلات بل يعرض السجلات المشتركة بين الجدولين
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] طريقة تحديث جدول بناء على بيانات جدول آخر sql server اليوم مبتدئة وغداً محترفة 5 4,882 23-04-21, 07:44 AM
آخر رد: d3vc0d
  [SQL] الأمر الخاص ب تعديل اسم جدول mmaalmesry 3 1,616 23-04-21, 07:27 AM
آخر رد: d3vc0d
  مشكلة في حذف سجلات من جدول SQL ابو انس 0 1,151 18-02-21, 11:11 PM
آخر رد: ابو انس
  سؤال بخصوص جدول الديون والسداد ؟ Abuzakria 2 1,548 28-11-20, 04:01 PM
آخر رد: Abuzakria
  [SQL] سؤال في جملة إضافة بيانات في جدول m4n2net2000 0 1,194 01-10-20, 11:51 PM
آخر رد: m4n2net2000
  مقارنه عمود في جدول مع عمود في جدول أخر لإظهار النتائج؟ هاوي برمجة 2 2,028 29-09-19, 01:45 AM
آخر رد: هاوي برمجة
  جدول يضم كل دول العالم تقريباً - الدولة ,الجنسية ورموز الدول , وعلم الدولة - عربي وإن عبدالله الدوسري 2 2,791 04-10-18, 01:45 PM
آخر رد: عبد العزيز البسكري
  جلب عدد اللاعبين الذين لعبو نصف الالعاب الموجوده في جدول. Rabeea Qbaha 2 2,020 09-06-18, 04:44 PM
آخر رد: Rabeea Qbaha
  اريد تحويل جدول في قاعدة بيانات أكسيس 2010 إلي sql Abdh111 6 5,091 20-11-17, 11:33 AM
آخر رد: abdhassan
  كيفية دمج جدول المبيعات والمشتريات وحساب عدد المشتريات والمبيعات sql server max_1978 3 3,940 17-01-17, 11:36 AM
آخر رد: ahmedabdelaliem

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


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