سؤال عن كود sql
#1
Photo 
السلام عليكم و رحمة الله و بركاته

أيها السادة لدينا البيانات التالية من جدول:


===================
| Designiation     | Code_Article| 
===================
| 0001           | Chair             |
| 0002           | Chair             |
| 0003           | Chair             |
| 0004           | Chair             |
| 0005           | Table            |
| 0006           | Table            |
| 0007           | PC                |
===================

فكيف أحصل على النتيجة التالية بكود sql:

======================
| Designiation     | Code_Article      | 
======================
| 0001-0004   | Chair                    |
| 0005-0006   | Table                    |
| 0007           | PC                        |
=======================


بارك الله فيكم


الملفات المرفقة
.png   Original_Table.png (الحجم : 3.6 ك ب / التحميلات : 19)
.png   The_Result.png (الحجم : 2.35 ك ب / التحميلات : 22)
الرد
#2
كود :
Select * from TableName Where ) (Chair=0001) or (chair=0004) And (Table=0005) or (Table=0006) And (PC=0007) (
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
[-] كل من 1 user says قال شكرا ل Delphi4Us على المشاركة المفيدة
  • MODROS
الرد
#3
لم تفهمني جيدًا
0001-0004 معناها من 0001 إلى 0004 فمثلًا إذا كان هناك رقم آخر لـ Chair مثلًا: 0010، يكتب :

0001-0004,0010

و حبذا لو يضاف حقل جديد يعطي عدد Chair و Table  و PC
أضفت في المرفق ملف قاعدة البيانات و واجهة لكتابة كود sql و تنفيذه، للتأكّد من مدى فعالية الكود المعطى.
و بارك الله فيكم على التغاعل


الملفات المرفقة
.rar   Inventaire.rar (الحجم : 829 بايت / التحميلات : 41)
الرد
#4
سوف اعود لانني مستعحل الان
ماهي الاداة DBgride التي تعرض فيها النتيجة
اذا كانت تدعم expression يمكنك بسهولة تخصيص النتيجة في الحقل الذي تريد
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
[-] كل من 1 user says قال شكرا ل Delphi4Us على المشاركة المفيدة
  • MODROS
الرد
#5
(08-09-2018, 07:15 PM)Delphi4Us كتب : سوف اعود لانني مستعحل الان
ماهي الاداة  DBgride التي تعرض فيها النتيجة
اذا كانت تدعم expression يمكنك بسهولة تخصيص النتيجة في الحقل الذي تريد

تأكّد أنّها و تدعم النتيجة (عن تجريب)، و أنا أجرّب من جهتي حتّى أصل للمطلوب

بارك الله فيك على حرصك، و جعلت إن شاء الله في ميزان الحسنات
الرد
#6
السلام عليكم في الفيربيرد يوجد List function لا ادري بالنسبة للـ absolute
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
[-] كل من 1 user says قال شكرا ل S.FATEH على المشاركة المفيدة
  • MODROS
الرد
#7
Photo 
السلام عليكم و رحمة الله و بركاته

وصلت إلى مرحلة متقدّمة من الحلّ، و إن كان هناك الإشكال في تسلّسل البيانات حين لا يزيد Code_Article بواحد، حسب المثال السابق:


0001-0004
0005-0006
0007

هذا الذّي و صلت إليه، و لكن عندما يكون مثلًا 0010، لا زلت أعمل على ذلك، و هذه صورة للنتيجة على DBManager الخاصّ بقواعد بيانات Absolute Database، (حملها من الرفق إذا تعذّرت المعاينة):

[صورة: cx5ZqU]

و بارك الله في كلّ من اجتهد لنصل معًا إلى المطلوب.


الملفات المرفقة
.png   SomeOfTheSolution.png (الحجم : 17.37 ك ب / التحميلات : 30)
الرد
#8
السلام عليكم و رحمة الله وبركاته

يا جماعة بعد آخر حلّ وصلت: 

[صورة: Some_Of_The_Solution.png]

لم أوفّق للتقدّم إلى المطلوب-و أنا على عجالة في هذا الأمر-، فهل هناك طريقة أخرى، مع العلم أنّه محتوى يراد به الطباعة على (FastReport)، و عرضه على (DBGrid).

و بارك الله فيكم.
الرد
#9
السلام عليكم
هنا يجب استعمال loop لادراج قائمة معطيات في دالة او متغير

هاك مثال عن mysql


كود :
While loop syntax example in MySQL: delimiter // CREATE procedure yourdatabase.while_example() wholeblock:BEGIN  declare str VARCHAR(255) default '';  declare x INT default 0;  SET x = 1;  WHILE x <= 5 DO    SET str = CONCAT(str,x,',');    SET x = x + 1;  END WHILE;  select str; END// Which prints: mysql> call while_example(); +------------+ | str        | +------------+ | 1,2,3,4,5, | +------------+

;والله اعلم
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
[-] كل من 1 user says قال شكرا ل mobile على المشاركة المفيدة
  • MODROS
الرد
#10
بارك الله فيك سيّدي الجميل، إلّا أنّي أستخدم قواعد بيانات Absolute database ، و قد ظننت أنّي وجدت الحلّ سابقًا بمعرفة الأمر declare، إلّا أنّ ما أستخدمه لا يدعم ذلك الأمر، أو أنّي لم أجد استخدامه بالطريقة المثلى، إذ أنّها في كلّ مرّة ترسل رسالة خطأ :

SQL token expected, but 'declare' found at line 1, column 1 - Native error: 30153
الرد


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


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