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

سؤال في استخدام عنوان الحقل بدلاً من اسمه

بدأه محمد غريب في 7 مارس 2010 · 2 رد · 406 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

من المعروف انه يمكن تغيير عنوان الحقل كالتالي :

Select MyCol as MyCol_Label From MyTable

فهل يمكن استخدام هذا العنوان في الاستعلام ليدل على الحقل بدلاً من اسمه كالتالي :

Select MyCol as MyCol_Label From MyTable Where MyCol_Label='Something'

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

وانا احتاج هذا الامر لإستخدامه مع الحقول التي تكون عبارة عن استعلام SubQuery فتأتي بدون اسم كالتالي :

Select MyCol1 , (Select MyCol2 From MyTable2 Where MyCol1=MyTable1.MyCol1) From MyTable1

فهنا الحقل الثاني يأتي بدون اسم , وليست المشكلة في الاسم الذي يظهر للمستخدم بل عندما اريد عمل شرط بهذا الحقل فكيف احدد له اسم لاستخدمه في الشرط

او كيف استخد مثلاً ترتيب الحقل في جملة Select بدلاً من اسمه فمثلاً اقول له عندما يكون الحقل الثاني = قيمة معينة , وترتيب الحقل هنا ليس ترتيبه في الجدول بل ترتيبه في العرض في جملة Select , فهل يمكن هذا ??!

وشكراً ,,,

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#2

السلام عليكم

ما تطلبه غير ممكن بشكل مباشر لكن يمكن استخددام الطرق التالية :

1- ممكن وضع الشرط في الاستعلام الداخلي :

Select MyCol2 From MyTable2 Where MyCol1=MyTable1.MyCol1 and mycol2=123

2-انشاء view لهذا الاستعلام وبعد ذلك التعامل مباشرة مع ال View

3-من الممكن استخدام الاستعلام كأنه جدول وذلك كمايلي :

select * from 

(
Select MyCol1 , (Select MyCol2 From MyTable2 Where MyCol1=MyTable1.MyCol1) as col2 From MyTable1
)
as t1
where col2=123

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 7 مارس 2010 في 17:29 — السبب: إضافة وسم الكود

1
#3

هذا ما اريده بالضبط اخي الكريم في الطريقة رقم 3 والتي تعتبر مفتاح جديد بالنسبة لي سيسهل اشـــياء كثيرة ويعطيني إمكانيات اكثر في الإستعلامات ,

فأنا كنت اريد هذه الطريقة لإستعلام مثل الإستعلام التالي :

Select *,(Select Sum(Sal) From Emp Where Twn=T1.Twn) From

(
Select Twn From Emp Group by Twn
) as T1

فهنا المطلوب عرض جميع المدن في الجدول وعرض مجموع المرتبات التي تم دفعها للموظفين في كل مدينة في خلال فترة معينة ,

فهنا انا استعلم عن حقل بخاصية الـ Group by واريد الإستعلام عن مجموع حقل آخر في نفس الجدول عندما يتطابق حقل المدينة مع المدينة المعروضة , فهنا لا يمكنني إستخدام الطريقة التالية

Select Twn , (Select Sum(Sal) From Emp Where Twn=Emp.Twn) From Twn Group by Twn

لان الحقلين من نفس الجدول لذا يحدث تداخل في جملة التحقق من المدينة "Where Twn=Emp.Twn" ولن يفعل المطلوب

لذلك طريقتك هي الحل الامثل لهذا الموضوع

انا شاكر لك جداً اخي الكريم TareqVB وادعوا الله ان يجعل كل ما تقدمه في هذا المنتدى في ميزان حسناتك يوم القيامة وان يبارك لك في علمك وينفعك به بإذن الله

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…