منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : استفسار عن مشكلة في كود لايجاد العملاء الغير موجودين بجدول الدفع
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
(18-09-18, 11:26 AM)asemshahen5 كتب : [ -> ]تفضل أرجو أن يكون هذا المطلوب .

تسلم 
نفعت معايا الطريقة دى
السلام عليكم 
الاخوة الكرام 
تواجهنى مشكلة هنا اننى عند استخدامى للفلترة عن طريق SELECT DISTINCT
PHP كود :
NOT IN (SELECT DISTINCT CID FROM dbo.ClinetPay AS ClinetPay_1
المشكلة هى انه ان وجد ID  موجود بجدول الدفع لا يظهره على الرغم ان العميل له فواتير اخرى غير مسددة

المطلوب هو اريد كل الفواتير الغير مسددة للعميل 
ClinetPay : جدول العملاء المسددين للفواتير
Monthly : جدول فواتير العميل الشهرية 
مرفق نسخة  من قاعدة البيانات 
احدهما Bak والاخرى Schema and data
(18-10-18, 10:39 PM)ahmedmansour كتب : [ -> ]السلام عليكم 
الاخوة الكرام 
تواجهنى مشكلة هنا اننى عند استخدامى للفلترة عن طريق SELECT DISTINCT
PHP كود :
NOT IN (SELECT DISTINCT CID FROM dbo.ClinetPay AS ClinetPay_1
المشكلة هى انه ان وجد ID  موجود بجدول الدفع لا يظهره على الرغم ان العميل له فواتير اخرى غير مسددة

المطلوب هو اريد كل الفواتير الغير مسددة للعميل 
ClinetPay : جدول العملاء المسددين للفواتير
Monthly : جدول فواتير العميل الشهرية 
مرفق نسخة  من قاعدة البيانات 
احدهما Bak والاخرى Schema and data

؟
السلام عليكم 
هل من حل لطلبي
(18-10-18, 10:39 PM)السلام عليكم هل من حل كتب : [ -> ]السلام عليكم 
الاخوة الكرام 
تواجهنى مشكلة هنا اننى عند استخدامى للفلترة عن طريق SELECT DISTINCT
PHP كود :
NOT IN (SELECT DISTINCT CID FROM dbo.ClinetPay AS ClinetPay_1
المشكلة هى انه ان وجد ID  موجود بجدول الدفع لا يظهره على الرغم ان العميل له فواتير اخرى غير مسددة

المطلوب هو اريد كل الفواتير الغير مسددة للعميل 
ClinetPay : جدول العملاء المسددين للفواتير
Monthly : جدول فواتير العميل الشهرية 
مرفق نسخة  من قاعدة البيانات 
احدهما Bak والاخرى Schema and data
وعليكم السلام ورحمة الله وبركاته

تذكر اخى كود الاستعلام التالى
كود :
SELECT * FROM dbo.Monthly WHERE ClinteID NOT IN (SELECT DISTINCT CID FROM dbo.ClinetPay AS ClinetPay_1)

حيث ان جدول ClinetPay يحتوى على كلاً من 
PHP كود :
1 و 2 و 9 و 12 

فعند اتمام تنفيذ الاستعلام سيتم عرض جميع الارقام 
تجنباً عرض كلاً من الارقام التى تم ذكرها بالاعلى

والسبب انك تستخدم 
كود :
NOT IN

وهى تعنى عرض جميع الاستعلام مع شرط ان يكون الرقم غير موجود بجدول ClinetPay
طيب لو كنت محتاج عرض العكس ان يكون الاقام هى ما تتواجد بداخل هذا الجدول

ليقوم بعرض نتائج الاستعلام طبقاً للارقام فهنا ستحتاج ان تجعل كود الاستعلام بهذا الشكل
كود :
SELECT * FROM dbo.Monthly WHERE ClinteID IN (SELECT DISTINCT CID FROM dbo.ClinetPay AS ClinetPay_1)

قم بتجربة كلاً من الاستعلام حتى توضح لك شكل النتائج

تحياتى لك
وتمنياتى لك التوفيق
السلام عليكم 

اخى الفاضل حيث ما شرحت لى قمت بالتجربة لكن نفس الموضوع 
دعنى اوضح لك الفكرة مرة احرى 
عند استعلامى من داخل قاعدة البيانات عن العميل رقم 1  فى جدول الفواتير يضتح لى ان العميل مسجل له 3 فواتير كما هو مبين بالصورة


و بالاستعلام داخل جدول المدوفعات يتضح لى ان العميل لم بدفع الا شهر 8/2018 
ومتبقى علية شهرين  هما 
9/2018 , 10/2018 


و بتعديل جملة الاستعلام كما وضحت لى اخى الفاضل 
يظهر فى الاستعلام جميع الشهور المسددة والغير مسددة




و بالرجوع الى الاستعلام الاساسي  لا يظهر العميل على اساس ان جملة SELECT DISTINCT ستستثني جميع الارقام المكررة 


المطلوب 
هو طريقة عرض العميل الغير مسدد عن شهر معين 
اتمنى ان تكون الفكرة وصلت 
السلام عليكم 
اتمني أن أجد من يساعدني
السلام عليكم 

هل من حل لطلبي

جرب هذا :
كود :
SELECT        dbo.Clintes.ClinteID, dbo.Clintes.Clinte_Name, dbo.Monthly.moth
FROM            dbo.Clintes INNER JOIN
                        dbo.ClinetPay ON dbo.Clintes.ClinteID = dbo.ClinetPay.CID RIGHT OUTER JOIN
                        dbo.Monthly ON dbo.ClinetPay.Moth <> dbo.Monthly.moth AND dbo.Clintes.ClinteID = dbo.Monthly.ClinteID
WHERE        (dbo.Clintes.Clinte_Name IS NOT NULL)
الصفحات : 1 2 3