الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال حول AS في SQL

بدأه khaled007 في 21 فبراير 2013 · 21 رد · 976 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندي حقل فيه 1000 رقم وعايز اعمل  لهذه  الارقام عملية فلتر (Filter) 

 

 

بحيث الرقم الذي ينتهي باربع ارقام  متشابهة  يكون الرقم الذهبي 

والرقم الذي يبداء يثلاث ارقام متشابهة يكون فضي 

والرقم الذي يبداء برقمين متشابهين يكون برونزي 

 

عندي هذا الكود وهو شغال 100% لكن المشكلة يظهر الذهبي فقط وانا اريد الكل في مرة واحدة  لاحظ 

SELECT UIM  AS Gold'%FROM Table2 where UIM like '%2222

 

اكيف اضيف الكل مرة واحدة 

 

يعني AS GOLD- AS SELVER- AS BRONS  في مرة وحدة 

 

علما اذا وضعت كل كود على حدى يقوم بعمل ثلاث جداول وانا اريد في جدول واحد 

 

اتمنى فهمتوني 

 

 

شكرا جزيلا 

#2

السلام عليكم ...

  1. لضم نتائج ثلاث عبارات سيكوال مع بعضها البعض يمكن استخدام الــ Join  بشرط أن تعيد هنا كل و احدة منها سجل واحد فقط (يمكن استخدام ISNULL  و TOP 1) .
  2. SELECT * FROM 
    (((SELECT UIM  AS Gold , 1 AS F1 FROM Table2 where UIM like '22222')  AS T1 INNER JOIN  
    (SELECT UIM  AS SELVER , 1 AS F2 FROM Table2 where UIM like '33333') AS  T2 ON T1.F1=  T2.F2) INNER JOIN 
    (SELECT UIM  AS BRONS  , 1 AS F3 FROM Table2 where UIM like '44444') AS T3  ON T2.F2 = T3.F3)

     

  3. لاحظ أن الحالة %22% تشمل الحالة %2222% ... صح ؟

  4. هل تستخدم سيكوال سيرفر أم أكسس ؟

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

اخي الطيب انا استخدم   sql  

#4

اخي استخدمت الكود  الذي زوتني به لكن لا يعرض الارقام 

 

يظهر جدول فارغ

#5

أخي أولا هذا الكود لا يختار المنتهي بالأرقام المتشابهة وإنما في أي مكان وجد أربع أرقام متشابهة سيختاره أي حتى لو في البداية
 كما أن المثال الذي وضعته أنت فقط عندما يكون هناك أربع أرقما متشابه وهو 2

 

بالنسبة لإظهارها مجتمعة تحتاج لتعليمة JOIN  لجمع الأعمدة في جدول واحد

 

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

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

لأن الفضي يعتبر برونزي

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#6

السلام عليكم .

SELECT TOP 1
(SELECT TOP 1 UIM   FROM Table2
WHERE  SUBSTRING(UIM ,LEN(UIM),1) = SUBSTRING(UIM ,LEN(UIM) -1,1) AND SUBSTRING(UIM ,LEN(UIM) -1,1) = SUBSTRING(UIM ,LEN(UIM) -2,1) AND  SUBSTRING(UIM ,LEN(UIM) -2,1) = SUBSTRING(UIM ,LEN(UIM) -3 ,1)) AS Gold ,
(SELECT TOP 1 UIM   FROM Table2
WHERE SUBSTRING(UIM ,1,1) = SUBSTRING(UIM ,2,1) AND SUBSTRING(UIM ,2,1) = SUBSTRING(UIM ,3,1)) AS SELVER ,
(SELECT TOP 1 UIM   FROM Table2
WHERE SUBSTRING(UIM ,1,1) = SUBSTRING(UIM ,2,1) AND SUBSTRING(UIM ,2,1) <> SUBSTRING(UIM ,3,1)) AS BRONS
FROM Table2;

 يرجى التأكد من الشروط الموضوعة .

 

تعديل :

تم دمج الموضوعين  .. يرجى عدم تكرار المواضيع في المنتديات .. و خصوصا أن السؤال متعلق بالسيكوال سيرفر .

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 24 فبراير 2013 في 13:07

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#7
اقتباس

انتبهت أنه يوجد نفس الموضوع

هنا

/index.php/topic/275726-%D8%B3%D8%A4%D8%A7%D9%84-%D8%AD%D9%88%D9%84-as-%D9%81%D9%8A-sql/

يرجى من الإخوة المشرفون دمج الموضوع الحالي مع المذكور لجمع الردود بدل من التشتت وتكرارها هنا وو هناك

شكرا للإخوة لدمج الموضوعين

تم تعديل هذه المشاركة بواسطة أبو أحمد المبرمج في 21 فبراير 2013 في 19:39

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#8

اعتقد لو احد يصحح هذا الكود يكون افضل لانه لم يظبت معي

SELECT 
      val,
      PATINDEX('%[0{3}$|1{3}$|2{3}$|3{3}$|4{3}$|5{3}$|6{3}$|7{3}$|8{3}$|9{3}$]',val) as c1,
      PATINDEX('%[000],[111],[222],[333],[444],[555],[666],[777],[888],[999]',val)as c2
  FROM [dbo].[emp1]
#9

أخي سبق وتم مناقشة هذا السؤال ولكنك لم تتابع فيه

/index.php/topic/275201-%D8%AA%D8%AD%D8%AF%D9%8A%D8%AF-%D9%85%D8%AC%D9%85%D9%88%D8%B9%D8%A9-%D8%A7%D9%84%D8%A7%D8%B1%D9%82%D8%A7%D9%85-%D8%A7%D9%84%D9%85%D9%86%D8%AA%D9%87%D9%8A%D8%A9-%D8%A8%D8%AB%D9%84%D8%A7%D8%AB-%D8%A7%D8%B1%D9%82%D8%A7%D9%85-%D9%85%D8%AA%D8%B4%D8%A7/

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#10

في السكول لا تعمل ما السبب

#11

عفوا أخي كريم ردي كان على الأخ السائل وليس على تساؤلك

فيما يخص تساؤلك لم أجربه بعد

تم تعديل هذه المشاركة بواسطة أبو أحمد المبرمج في 22 فبراير 2013 في 22:01

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#12

thank u abo ahmed

#13

الاكود الاول صحيح  لكن يظهر الجدول فارغ 

SELECT * FROM 
(((SELECT UIM  AS Gold , 1 AS F1 FROM Table2 where UIM like '22222')  AS T1 INNER JOIN  
(SELECT UIM  AS SELVER , 1 AS F2 FROM Table2 where UIM like '33333') AS  T2 ON T1.F1=  T2.F2) INNER JOIN 
(SELECT UIM  AS BRONS  , 1 AS F3 FROM Table2 where UIM like '44444') AS T3  ON T2.F2 = T3.F3)

 

 

هذا الكود هو المطلوب  لكن يظهر فارغ بدون قيم شو  السبب 

#14

أخي خالد يسر الله لك كل عسير

ولكن أخي سبق و طلبت قريب من هذا الطلب فأجبناك أنا والأخ كريم

/index.php/topic/275201-%D8%AA%D8%AD%D8%AF%D9%8A%D8%AF-%D9%85%D8%AC%D9%85%D9%88%D8%B9%D8%A9-%D8%A7%D9%84%D8%A7%D8%B1%D9%82%D8%A7%D9%85-%D8%A7%D9%84%D9%85%D9%86%D8%AA%D9%87%D9%8A%D8%A9-%D8%A8%D8%AB%D9%84%D8%A7%D8%AB-%D8%A7%D8%B1%D9%82%D8%A7%D9%85-%D9%85%D8%AA%D8%B4%D8%A7/

 

 

ثم طلبت لو يكون المطلوب فيجوال بيسيك وليس سكربت

 

khaled007 كتب:

اخواني ان  هذه معلوماتكم قد افادتني ( وهو المطلوب) لكن اذا كان الكود vb.net يكون افضل لان الارقام  عبارة عن اكسل شيت  وتم ادراجها في الداتا جرد  فلا اريد اضطر الى تحويل الاكسيل شيت الى قواعد بيانات
لان الارقم  عددها 37 الف رقم
 
شكرا جزيلا

 

فقمت بالمطلوب ورفعت لك البرنامج

 

أبو أحمد المبرمج كتب:

 

وكذلك رد عليك الاخ كريم

 

KARIMSOFT كتب:

لا اعتقد ان عدم تحويل 37 الف سجل الي قاعدة بيانات فكره صحيحة والتعامل معها في الذكرة يمكن ان تتسبب في مشكله في نظام الشغيل

 

وبعدها لم تعلق على الموضوع لا صح ولا خطأ هل هو المطلوب أم لا علما أنه كان يتضمن الاكواد الصحيحة للاختيار

 

وما تطلبه الآن يحتاج فقط تعديل بسيط على ذاك

 

ولكن الوقت الذي صرف على السؤال السابق جعلنا نشعر بأنه ذهب سدى

ولا ندري إن كان لهذا الموضوع نفس المصير

 

ونسأل الله لك ولنا التوفيق والسداد في الأمر

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#15
khaled007 كتب:

الاكود الاول صحيح  لكن يظهر الجدول فارغ 

SELECT * FROM 
(((SELECT UIM  AS Gold , 1 AS F1 FROM Table2 where UIM like '22222')  AS T1 INNER JOIN  
(SELECT UIM  AS SELVER , 1 AS F2 FROM Table2 where UIM like '33333') AS  T2 ON T1.F1=  T2.F2) INNER JOIN 
(SELECT UIM  AS BRONS  , 1 AS F3 FROM Table2 where UIM like '44444') AS T3  ON T2.F2 = T3.F3)

 

 

هذا الكود هو المطلوب  لكن يظهر فارغ بدون قيم شو  السبب 

يظهر فارغ لأنه يعتمد على فكرة الــ Inner Join  و بالتالي إذا لم يكن هناك رقم ذهبي أو فضي أو برونزي , فسيظهر الجدول فارغ ,لأنه يتطلب وجود الارقام الثلاثة معا ..

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#16

بس هناك ما  اكتر من عشرين رقم ذهبي واكثر من عشرة برونزي لكن لا يضهرها ابدا 

#17

السلام عليكم ...

  1. يجب وضع الرمز%  مع الـــ LIKE  ...
  2. هل يوجد رقم فضي ؟
  3. جرب كل استعلام لوحده و انظر للنتائج .
  4. الأفضل استخدام الاستعلام في المشاركة رقم 6 .

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#18

الاكود لا تعطي نتائج  المشكلة عالقة لغاية الان 

 

لااحض المشكلة اخي في الصورة 

 

علما وضعت 4 ارقام تنتهي ب 2222222

و 5 ارقام تنتهي ب 333333

 

و 6 ارقام تنتهي 444444

 

 

وبقية الارقام مختلفة 

 

لكن لا يضهر اي شيئ

 

وهناك  ظهور F1 , F2, F3 مع الجدول 

ما هي 

 

شكرا جزيلا 

 

vNyTJ.jpg

#19

السلام عليكم ..

  1. اعتقد أن اختيارنا لطريقة الـــ join  كانت خاطئة , فهي إما تؤدي لتكرار في الأرقام أو تؤدي لعدم ظهور السجلات إذا لم يكن لها مقابل في كل الجداول .
  2. الحقول F1 , F2 , F3  هي حقول قمت بإنشائها في الاستعلام و تحوي القيمة 1 بهدف الربط .
  3. أنا جربت الاستعلام السابق و هو يعمل
  4. يمكن وضع الارقام في جدول واحد و لكن تحت بعضها البعض باستخدام union .
  5. SELECT  UIM  , 'G' AS NumberType  FROM Table2
    WHERE  SUBSTRING(UIM ,LEN(UIM),1) = SUBSTRING(UIM ,LEN(UIM) -1,1) AND SUBSTRING(UIM ,LEN(UIM) -1,1) = SUBSTRING(UIM ,LEN(UIM) -2,1) AND  SUBSTRING(UIM ,LEN(UIM) -2,1) = SUBSTRING(UIM ,LEN(UIM) -3 ,1)
    UNION 
    SELECT  UIM ,'S' AS NumberType  FROM Table2
    WHERE SUBSTRING(UIM ,1,1) = SUBSTRING(UIM ,2,1) AND SUBSTRING(UIM ,2,1) = SUBSTRING(UIM ,2,1)
    UNION
    SELECT  UIM , 'B' AS NumberType  FROM Table2
    WHERE SUBSTRING(UIM ,1,1) = SUBSTRING(UIM ,2,1) AND SUBSTRING(UIM ,2,1) <> SUBSTRING(UIM ,3,1)

     انتبه أن الرقم قد يكون ذهبي و فضي بنفس الوقت حسب الشروط الموضوعة!!  أو يجب وضع شرط آخر لذلك .

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#20

لاحظ اخي المشكلة في هذا الكود 

 

علما تم تحويل الى AS textType في الجمل الاتية وايضا لم ينفع 

 

الصورة 

 

IcwPd.jpg

تم تعديل هذه المشاركة بواسطة khaled007 في 24 فبراير 2013 في 13:28

#21

السلام عليكم ..

ما هو نوع الحقل UIM ؟ .. يجب أن يكون Varchar  ..

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#22

اخي العزيز ربي يوفقك ان شاء الله 

 

الكود يعمل لكن ليس المطلوب  انا اريد الكل في  مرة واخدة 

مواضيع مشابهة