delphi4arab منتديات دلفي للعرب

نسخة كاملة : سؤال عن كود sql
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم و رحمة الله و بركاته

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


===================
| 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                        |
=======================


بارك الله فيكم
كود :
Select * from TableName Where ) (Chair=0001) or (chair=0004) And (Table=0005) or (Table=0006) And (PC=0007) (
لم تفهمني جيدًا
0001-0004 معناها من 0001 إلى 0004 فمثلًا إذا كان هناك رقم آخر لـ Chair مثلًا: 0010، يكتب :

0001-0004,0010

و حبذا لو يضاف حقل جديد يعطي عدد Chair و Table  و PC
أضفت في المرفق ملف قاعدة البيانات و واجهة لكتابة كود sql و تنفيذه، للتأكّد من مدى فعالية الكود المعطى.
و بارك الله فيكم على التغاعل
سوف اعود لانني مستعحل الان
ماهي الاداة DBgride التي تعرض فيها النتيجة
اذا كانت تدعم expression يمكنك بسهولة تخصيص النتيجة في الحقل الذي تريد
(08-09-2018, 07:15 PM)Delphi4Us كتب : [ -> ]سوف اعود لانني مستعحل الان
ماهي الاداة  DBgride التي تعرض فيها النتيجة
اذا كانت تدعم expression يمكنك بسهولة تخصيص النتيجة في الحقل الذي تريد

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

بارك الله فيك على حرصك، و جعلت إن شاء الله في ميزان الحسنات
السلام عليكم في الفيربيرد يوجد List function لا ادري بالنسبة للـ absolute
السلام عليكم و رحمة الله و بركاته

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


0001-0004
0005-0006
0007

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

[صورة: cx5ZqU]

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

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

[صورة: Some_Of_The_Solution.png]

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

و بارك الله فيكم.
السلام عليكم
هنا يجب استعمال 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, | +------------+

;والله اعلم
بارك الله فيك سيّدي الجميل، إلّا أنّي أستخدم قواعد بيانات Absolute database ، و قد ظننت أنّي وجدت الحلّ سابقًا بمعرفة الأمر declare، إلّا أنّ ما أستخدمه لا يدعم ذلك الأمر، أو أنّي لم أجد استخدامه بالطريقة المثلى، إذ أنّها في كلّ مرّة ترسل رسالة خطأ :

SQL token expected, but 'declare' found at line 1, column 1 - Native error: 30153
الصفحات : 1 2