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

كيف يمكن الحصول على ارقام الفواتير التى بها اصناف من مخزن فرعى واحد فقط ؟

بدأه red_scorpion1 في 12 ديسمبر 2013 · 1 رد · 447 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

 

لدى جدول يسمى ( aztrd ) يحتوى على بيانات الفاتورة التفصيلية من رقم الفاتورة الاصناف التى بالفاتورة كل صنف فى سطر -رقم المخزن الرئيسى ( مخزن القاهرة او مخزن الاسكندرية ) - رقم المخزن الفرع ( قطاع عام او قطاع استثمارى ) وهنا المشكلة

 

طلب منى ان اقوم بعمل استعلام يستدعى الفواتير التى يكون بها اصناف مخزن فرعى واحد فقط حيث ان هناك بعض الفواتير بها اصناف   فى ( مخزن القطاع العام واصناف اخرى فى مخزن القطاع الاستثمارى  معا فى نفس الفاتورة) وهناك فواتير اخرى بها اصناف مخزن قطاع عام فقط او استثمارى فقط ( وتلك هى المطلوب استخراجها ؟؟؟ !! )

 

بمعنى ان اى فاتورة بها اصناف المخزنين معا غير مطلوبة ولكن مطلوب الفواتير التى بها نوع مخزن واحد فقط ؟  مثال: الفواتير التى بها اصناف مخزن قطاع عام فقط ولا يوجد بها اصناف مخزن استئمارى والعكس ؟

 
SELECT tr_no,loc_cd FROM AZTRD 
WHERE LOC_CD = 1 and tr_ty = 102 and loc = 01  AND LOC_CD NOT IN (SELECT itm_cd WHERE LOC_CD = 2)
GROUP BY TR_NO,LOC_CD
ORDER BY TR_NO
 

حاولت بالجملة السابقة ( نعم هى تختار المخزن الفرعى المطلوب فقط ) ولكنها تحضر جميع الفواتير التى بها اصناف المخزنين معا والتى بها صناف مخزن واحد -

 

فكيف يمكننى الحصول على الفواتير التى بها اصناف مخزن واحد فقط وليس اصناف المخزنين معا ؟؟

 

مرفق نسخة من قاعدة البيانات تحتوى على الجدول المراد استخراج البيانات منه فقط تعمل على sql 2012 - فهل من حل ؟

test201312130051.zip

تم تعديل هذه المشاركة بواسطة red_scorpion1 في 13 ديسمبر 2013 في 02:03

#2

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

حبذا لم عملت Script  للقاعدة ... الكثير من الاعضاء ليس عندهم 2012  .

على كل حال هذه محاولتي (المثال من المنتدى)  : 

SELECT     InvoiceId, InvoiceType, InvoiceDate, ResId, DocNo, InvoiceEx, Hasm
FROM         dbo.TblInvoicesHeader
WHERE
(
SELECT IsNull(COUNT (*) , 0)  AS TheCount2  FROM
(
	SELECT     DISTINCT [Note] 
	FROM          dbo.TblInvoiceBody
	WHERE      (dbo.TblInvoicesHeader.InvoiceId = dbo.TblInvoiceBody.InvId)
    
) AS T
) = 1  ;

 حيث فرضت أن الحقل Note يمثل رقم المخزن .. و هو موجود في كل سطر من تفاصيل الفاتورة .

حاول تطبيقه على مثالك . (TblInvoiceBody تفاصيل الفاتورة)

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

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

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

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

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

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

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

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

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