منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
جلب اكبر قيمه من عمود nvarchar من قاعده البيانات - نسخة قابلة للطباعة

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



جلب اكبر قيمه من عمود nvarchar من قاعده البيانات - Rabeea Qbaha - 09-12-17

مرحبا شباب 

عندي عمود في قاعده البيانات nvarchar يحتوي على رقم الفاتوره ويكون كالاتي M-1  , M-2 .....

و استخدمت خاصيه select MAX(bill_num) لاحصل على اخر رقم فاتوره و ازيد عليه 1

لكن لان الحقل للعمود nvarchar  يقراء فقط لحد M-9 ولا اعرف ما السبب.

السؤال كيف احصل على اعلى قيمة لرقم الفاتوره من عمود nvarchar ؟؟
وشكرا



RE: جلب اكبر قيمه من عمود nvarchar من قاعده البيانات - طالب برمجة - 09-12-17

استخدام MAX على عمود نصي هو مثل ORDER BY ولكن سيأخذ آخر ترتيب حرفي
لهذا عدم نجاح طريقتك سببه أن العمود نصي، وعليه سيتم ترتيبه على أساس أنها أحرف وليست أرقام
فطبيعي تجد M-9 أكبر M-10 في الترتيب الحرفي لأن ثالث حرف وهو 9 أكبر من 1

إذا كان الحرف M ثابت فاجعل العمود رقمي ثم أضف الحرف بعد الاستعلام عن طريق الكود


RE: جلب اكبر قيمه من عمود nvarchar من قاعده البيانات - Rabeea Qbaha - 09-12-17

اخي Amir alzubidy شكرا لك على الكود المختصر 


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


مشكورين .



RE: جلب اكبر قيمه من عمود nvarchar من قاعده البيانات - طالب برمجة - 09-12-17

حسب طبيعة الفاتورة أي تقصد نوع الفاتورة

ضع عمود لنوع الفاتورة نصي وعمود لرقم الفاتورة رقمي ولمعرفة آخر رقم فاتورة لنوع معين تستعلم بالطريقة التالية
PHP كود :
SELECT MAX([inv_no]) FROM [InvoiceWHERE [inv_type] = 'M' 
وإذا كان التسلسل الرقمي لا يفصل بنوع الفاتورة تستعلم بالطريقة التالية
PHP كود :
SELECT MAX([inv_no]) FROM [Invoice

وبما أن التسلسل الرقمي لا يفصل بنوع الفاتورة والأفضل تجعل الترقيم تلقائي
فحينها لن تحتاج لهذا الاستعلام من الأساس لأنك ستعرف الرقم بعد إضافة الفاتورة

يفضل وضع نوع الفاتورة رقمي ووضع جدول لأنواع الفواتير يتم ربطه به


RE: جلب اكبر قيمه من عمود nvarchar من قاعده البيانات - Rabeea Qbaha - 10-12-17

(09-12-17, 08:41 PM)طالب برمجة كتب : حسب طبيعة الفاتورة أي تقصد نوع الفاتورة

ضع عمود لنوع الفاتورة نصي وعمود لرقم الفاتورة رقمي ولمعرفة آخر رقم فاتورة لنوع معين تستعلم بالطريقة التالية
PHP كود :
SELECT MAX([inv_no]) FROM [InvoiceWHERE [inv_type] = 'M' 
وإذا كان التسلسل الرقمي لا يفصل بنوع الفاتورة تستعلم بالطريقة التالية
PHP كود :
SELECT MAX([inv_no]) FROM [Invoice

وبما أن التسلسل الرقمي لا يفصل بنوع الفاتورة والأفضل تجعل الترقيم تلقائي
فحينها لن تحتاج لهذا الاستعلام من الأساس لأنك ستعرف الرقم بعد إضافة الفاتورة

يفضل وضع نوع الفاتورة رقمي ووضع جدول لأنواع الفواتير يتم ربطه به


كلام سليم صديقي وشكرا على المساعدة