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

Expression Inside Between

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

لدي الجملة التالية داخل sp

select * 
from voipswitch.dbo.viewgwclientsfinal where ( voipswitch.dbo.viewgwclientsfinal.login between (select sales.dbo.range.rangestart  from sales.dbo.range where sales.dbo.range.rangestart in (select sales.dbo.range.rangestart from sales.dbo.range where serviceid=@serviceid)) and (select sales.dbo.range.rangeend  from sales.dbo.range where sales.dbo.range.rangeend in (select sales.dbo.range.rangeend from sales.dbo.range where serviceid=@serviceid)) )

في حال وجود اكثر من rangestart تعطي العملية error

السؤال هو بعيدا عن استعمال curesor

هل من طريقة لاستعمال resord set من داخل between

علما باني استعمل sqlserver2000

شكرا مقدما

تم تعديل هذه المشاركة بواسطة reda في 19 أكتوبر 2007 في 16:39

#2

يعني ليش معقدي نفسي كل هالقد !!

يعني شوية تنظيم للكود رح تكون أمورك سهلة أكثر .

بصراحة أنا شايف أن الكود خطأ 100% يعني بالكامل .. لا تسأليني لماذا !!

أنظري إلى الاستعلام إنك تكررين الاستعلام التالي نفسه لقيمتي الـ Between :

(select sales.dbo.range.rangestart from sales.dbo.range where sales.dbo.range.rangestart in (select sales.dbo.range.rangestart from sales.dbo.range where serviceid=@serviceid))

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

Select sales.dbo.range.rangestart from sales.dbo.range where serviceid=@serviceid

أنا أنصحك بتصحيح الكود أولاً و النصيحة الثانية أن تستفيدي من شيء اسمه الـ Variables :

Declare @rangeStart DateTime

Select @rangeStart =  sales.dbo.range.rangestart from sales.dbo.range where serviceid=@serviceid

select @rangeStart

ثم حاولي مرة أخرى لأن الكود يحتاج إلى إعادة من الصفر !

تم تعديل هذه المشاركة بواسطة imadouzoun في 20 أكتوبر 2007 في 00:27

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#3

الأخ الكريم بداية أشكر لك ردك

اقتباس
يعني ليش معقدي نفسي كل هالقد !!

والله مابعرف بس الموضوع مش بسيط متل ماحضرتك متصور

دعني اشرح لك اكثر

الحقل rangestart or rangeend هو عبارة عن char مش datetime

انا عندي الهيكلية التالية

one >> service > many >ranges

لهيك استعملت الin

بقلب الكويري يعني كل جهة من الbetween بترد resordset

بها الحالة الvariable مابيفيد ابدا

ع العموم شكرا الك

وبالمناسبة انا شب طويل عريض اسمي رضا ...

ا

#5

تشرفنا بمعرفتك أخي رضا .. وأنا بعتذر لأني ظنيتك أخت ..

على كل بالنسبة لما تريده فأنا حتى لم أفهم ما هي الـ Record Set اللي بدّك تحصل عليها من الاستعلام ..

لذا لن أستطيع مساعدتك إذا لم توضح ذلك ..

بالتوفيق

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

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

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