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

دالة أو معيار مفقودة جاري البحث عنها ؟

مغلق
بدأه أبو تهاني في 5 أغسطس 2006 · 4 رد · 550 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اساتذتي الأفاضل في هذا المنتدى

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

سبق لي طرح سؤال بمنتدى الاكسيس وقد تمت الاجابه عليه من قبل الخوان الأفاضل مجتهدين حسب امكانياتهم مشكورين ومأجورين ان شاء الله ولكنه لم يتم التوصل للمطلوب ارجوووو من الأخوة الأفاضل في هذا المنتدى التدخل لحل المشكله من باب التكاتف والتكامل بين منتديات الفريق العربي خصوصاً وأن سؤالي قد يكون في مجال تخصص هذا المنتدى لأنه يتطلب تركيبة جملة sql شاكرين ومقدرين لكم مشاركتم ولكم مني خالص الود والمحبة

/index.php?showtopic=103487

تم تعديل هذه المشاركة بواسطة أبو تهاني في 5 أغسطس 2006 في 20:34

#2

تقصد الكلمة المفتاحية top التي تستخدم في جملة select لاختيار عدد محدد من السجلات موافق لمعيار where وفق ترتيب محدد

مزيد من الأمثلة

فكر بطريقة أخرى

#3

أشكرك اخي walcom جزيل الشكر وهذا توضيح اكثر لما اريده

لدي استعلام اريده ان يظهر عدد معين من السجلات وفي المثال المرفق ادناه يظهر أول خمسة سجلات كما هو موضح بالمثال المرفق أدناه

SELECT TOP 5 q3.name1, q3.تسلسلي, q3.nbox, q3.nfila, q3.CategoryID, q3.mithod, q3.namepart, q3.الجزيرة, q3.الرياض, q3.الشرق, q3.عكاظ, q3.المدينة, q3.الوطن, q3.mawjod, q3.Expr1, q3.Sumمنr, q3.rtbh
FROM q3;

المطلوب : اريد ان استبدل الرقم 5 بعد top بالعدد الموجود في الحقل R من الجدول q2

بمعنى أنني اريد تصحيح التركيب التالي

SELECT TOP Sum(q2.r)  q3.name1, q3.تسلسلي, q3.nbox, q3.nfila, q3.CategoryID, q3.mithod, q3.namepart, q3.الجزيرة, q3.الرياض, q3.الشرق, q3.عكاظ, q3.المدينة, q3.الوطن, q3.mawjod, q3.Expr1, q3.Sumمنr, q3.rtbh
FROM q3;

ملاحظه هذا الحقل الذي اريد أن تحل قيمته محل الرقم 5

SELECT Sum(q2.r) AS Sumمنr
FROM q2;

أرجو التكرم بالحل ولكم فائق تحياتي

تم تعديل هذه المشاركة بواسطة أبو تهاني في 16 أغسطس 2006 في 05:54

#4

تعتبر هذه واحدة من الاشياء التي تم حلها في ال SQL Server 2005 ، لكن لا توجد طريقة مباشرة في SQL Server 200 حتى لو عرفنا متغير او دالة ووضعناه بعد عبارة TOP فلن يتم قبوله، لكن يمكن تحديد عدد الصفوف المراد ارجاعها بالجملة

SET ROWCOUNT @any_int_var

وعليه يمكن حل المشكلة كالتالي

DECLARE @top INT
SET @top=(SELECT Sum(q2.r) FROM q2)
SET ROWCOUNT @top
SELECT q3.name1, q3.تسلسلي, q3.nbox, q3.nfila, q3.CategoryID, q3.mithod, q3.namepart, q3.الجزيرة, q3.الرياض, q3.الشرق, q3.عكاظ, q3.المدينة, q3.الوطن, q3.mawjod, q3.Expr1, q3.Sumمنr, q3.rtbh
FROM q3
SET ROWCOUNT 0

تم تعديل هذه المشاركة بواسطة abd_albaset في 16 أغسطس 2006 في 11:52

#5

أخي الكريم abd_albaset

اشكرك من الأعماق على اهتمامك بالرد وأريد أن واضح لك بأن هذا الإستعلام المراد عمله في اكسيس

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

DECLARE @top INT
SET @top=(SELECT Sum(q2.r) FROM q2)
SET ROWCOUNT @top
SELECT q3.name1, q3.تسلسلي, q3.nbox, q3.nfila, q3.CategoryID, q3.mithod, q3.namepart, q3.الجزيرة, q3.الرياض, q3.الشرق, q3.عكاظ, q3.المدينة, q3.الوطن, q3.mawjod, q3.Expr1, q3.Sumمنr, q3.rtbh
FROM q3
SET ROWCOUNT 0

أرجو ممن لديه الحل التجاوب وله خالص دعواتنا له بالتوفيق .

تم تعديل هذه المشاركة بواسطة أبو تهاني في 17 أغسطس 2006 في 12:16

هذا الموضوع مغلق.

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

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

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

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

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