مساء الخير للجميع
لدي قاعدة بيانات لمستودع sql server
يوجد استعلام يظهر رصيد المواد في هذا المواد
فكيف يمكن إظهار الرصيد بتاريخ محدد أو لفترة معينة بين تاريخين
و هل يجب أن أدرج تاريخ العمليات على المواد ضمن الاستعلام
و لكم كل الشكر على المساعدة
مساء الخير للجميع
لدي قاعدة بيانات لمستودع sql server
يوجد استعلام يظهر رصيد المواد في هذا المواد
فكيف يمكن إظهار الرصيد بتاريخ محدد أو لفترة معينة بين تاريخين
و هل يجب أن أدرج تاريخ العمليات على المواد ضمن الاستعلام
و لكم كل الشكر على المساعدة
مساء الخير للجميع
أرجو من الخبراء مساعدتي على حل هذه المشكلة
و لكم كل الشكر
السلام عليكم
نستطيع استرجاع المواد حسب التاريخ عن طريق وضع شرط
where somedate<=date2 and somedate>=date1
لكن هذا بحاجة الى ان يكون هناك جدول لحركات المواد والرصيد حسب التاريخ اي لا يكفي الاستعلام لوحده وانما يجب ان تكون الجداول معدة لذلك
شكرا على الرد
و لكن هل من الممكن أن تشرح لي كيف يمكن أن نعد الجداول لذلك
و شكرا جزيلا على المساعدة
مساء الخير
إلى الأخ طارق أرجو منك أن توضح لي فكرتك
و لك كل الشكر
السلام عليكم
اقصد اخي يجب ان يكون هناك جدول للحركات بالتاريخ اي تقوم بتسجيل اي حركة تمت في هذا الجدول وبالتاريخ والوقت
حقول الجدول تكون على الاقل كمايلي
رقم الحركة : رقم تلقائي
نوع الحركة : ادخال او اخراج
رقم الصنف : الصنف الذي تم ادخاله او خارجه
العدد : عدد الداخل او الخارج من الصنف
التاريخ والوقت
إلى الأخ طارق
شكرا لك على الشرح
مع العلم أنه لدي جدول بنفس الطريقة و الحقول التي شرحتها
و لقد وضعت في الاستعلام نفس الكود الذي شرحته
و لكن المشكلة أنه بهذه الحالة يظهر لي الرصيد بشكل تفصيلي لكل حركة على حدة
و ما أريده هو الرصيد بالمجمل
فما هي الطريقة لإظهار الرصيد بالمجمل
و أنا شاكرة جدا لك على مساعدتك
السلام عليكم
بدك تستخدم Group by للصنف مع المجموع لكل صنف
select itemno,sum(itemCount) as SumOFItems from trnas where somedate<=date2 and somedate>=date1 group by itemno
itemno: رقم الصنف
itemCount :العدد
مساء الخير
إلى الأخ طارق شكرا جزيلا لك على المساعدة
لقد قمت بكافة الخطوات التي شرحتها لي و كانت النتيجة ممتازة و لكن بقي لدي مشكلة أتمنى لو تستطيع مساعدتي في حلها و أكون شاكرة لك
إن قاعدة البيانات لدي مربوطة ببرنامج فيجوال بيسك
و عندما أريد إظهار الرصيد عن طريق الاستعلام الذي وضعته يعطيني البرنامج رسالة بعدم تواجد حقل للتاريخ
و هذا هو الكود الذي وضعته
Set rct = cdb.OpenRecordset("SELECT * FROM V_QUANTITY WHERE (FQT_DATE BETWEEN '" & PRS_FROMDATE.Text & "' AND '" & PRS_TODATE & "') AND (PRS_NAME ='" & PRS_NAME & "')")حيث
V_QUANTITY اسم الاستعلام
FQT_DATE حقل التاريخ
PRS_FROMDATE صندوق النص الذي سوف يوضع فيه التاريخ الأول
PRS_TODATE صندوق النص الذي سيوضع فيه التاريخ الثاني
فإنه في الاستعلام في قاعدة بيانات لا يوجد حقل للتاريخ فما هو الحل
و انا شاكرة جدا لمساعدتك
نحن بحاجة الى معرفة الاستعلام V_QUANTITY والتغيير عليه لذا ارجو ان تكتبه هنا
إلى الأخ طارق : مساء الخير
كود الاستعلام هو كالآتي
SELECT SUM(FQT.FQT_QUANTITYIN) AS PRS_QUANTITY, FQT.PRS_NUME, FQT.PRS_NAME
FROM FQT
WHERE (FQT.FQT_DATE >= CONVERT(DATETIME, '2008-01-02 00:00:00', 102)) AND (dbo.FQT.FQT_DATE <= CONVERT(DATETIME, '2008-10-03 00:00:00',
102))
GROUP BY FQT.PRS_NUME, dbo.FQT.PRS_NAME
FQT اسم الجدول لحركات المواد
FQT_DATE التاريخ
PRS_NUME رقم المادة
PRS_NAME اسم المادة
و شكرا على المساعدة
اخي الكريم
فقط ضع هذا الاستعلام بدل اسم الاستعلام عند فتح Recordset أي
Set rct = cdb.OpenRecordset("SUM(FQT.FQT_QUANTITYIN) AS PRS_QUANTITY, FQT.PRS_NUME, FQT.PRS_NAME
............إلى الأخ طارق
شكرا جزيلا و أنا شاكرة جدا على مساعدتك لي لقد أفادتني كثيرا
لقد طبقت الكود كما شرحته و قد كانت النتيجة ممتازة
لك كل الشكر على وقتك و مساعدتك
صباح الخير
بعد أن وضعت الاستعلام السابق أصبح استطيع إظهار الرصيد بين تاريخين كما أريد
و لكن لدي سؤال
كيف يمكن أن أضع استعلام يحسب لي الرصيد بنفس الطريقة و لكن دون إظهار المواد التي رصيدها صفر
ولكم الشكر
السلام عليكم
لاظهار الرصيد الذي اكبر من صفر نستخدم جملة Having في آخر الاستعلام
having sum(x) > 0
صباح الخير
إلى الأخ طارق شكرا جزيلا على المساعدة