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

تقرير رصيد بين تاريخين

بدأه silva_ko في 5 مايو 2008 · 15 رد · 1,841 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مساء الخير للجميع

لدي قاعدة بيانات لمستودع sql server

يوجد استعلام يظهر رصيد المواد في هذا المواد

فكيف يمكن إظهار الرصيد بتاريخ محدد أو لفترة معينة بين تاريخين

و هل يجب أن أدرج تاريخ العمليات على المواد ضمن الاستعلام

و لكم كل الشكر على المساعدة

#2

مساء الخير للجميع

أرجو من الخبراء مساعدتي على حل هذه المشكلة

و لكم كل الشكر

#3

السلام عليكم

نستطيع استرجاع المواد حسب التاريخ عن طريق وضع شرط

where somedate<=date2 and somedate>=date1

لكن هذا بحاجة الى ان يكون هناك جدول لحركات المواد والرصيد حسب التاريخ اي لا يكفي الاستعلام لوحده وانما يجب ان تكون الجداول معدة لذلك

#4

شكرا على الرد

و لكن هل من الممكن أن تشرح لي كيف يمكن أن نعد الجداول لذلك

و شكرا جزيلا على المساعدة

#5

مساء الخير

إلى الأخ طارق أرجو منك أن توضح لي فكرتك

و لك كل الشكر

#6

السلام عليكم

اقصد اخي يجب ان يكون هناك جدول للحركات بالتاريخ اي تقوم بتسجيل اي حركة تمت في هذا الجدول وبالتاريخ والوقت

حقول الجدول تكون على الاقل كمايلي

رقم الحركة : رقم تلقائي

نوع الحركة : ادخال او اخراج

رقم الصنف : الصنف الذي تم ادخاله او خارجه

العدد : عدد الداخل او الخارج من الصنف

التاريخ والوقت

#7

إلى الأخ طارق

شكرا لك على الشرح

مع العلم أنه لدي جدول بنفس الطريقة و الحقول التي شرحتها

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

و لكن المشكلة أنه بهذه الحالة يظهر لي الرصيد بشكل تفصيلي لكل حركة على حدة

و ما أريده هو الرصيد بالمجمل

فما هي الطريقة لإظهار الرصيد بالمجمل

و أنا شاكرة جدا لك على مساعدتك

#8

السلام عليكم

بدك تستخدم Group by للصنف مع المجموع لكل صنف

select itemno,sum(itemCount) as SumOFItems
from trnas where somedate<=date2 and somedate>=date1
group by itemno

itemno: رقم الصنف

itemCount :العدد

#9

مساء الخير

إلى الأخ طارق شكرا جزيلا لك على المساعدة

لقد قمت بكافة الخطوات التي شرحتها لي و كانت النتيجة ممتازة و لكن بقي لدي مشكلة أتمنى لو تستطيع مساعدتي في حلها و أكون شاكرة لك

إن قاعدة البيانات لدي مربوطة ببرنامج فيجوال بيسك

و عندما أريد إظهار الرصيد عن طريق الاستعلام الذي وضعته يعطيني البرنامج رسالة بعدم تواجد حقل للتاريخ

و هذا هو الكود الذي وضعته

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 صندوق النص الذي سيوضع فيه التاريخ الثاني

فإنه في الاستعلام في قاعدة بيانات لا يوجد حقل للتاريخ فما هو الحل

و انا شاكرة جدا لمساعدتك

#11

إلى الأخ طارق : مساء الخير

كود الاستعلام هو كالآتي

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 اسم المادة

و شكرا على المساعدة

#12

اخي الكريم

فقط ضع هذا الاستعلام بدل اسم الاستعلام عند فتح Recordset أي

Set rct = cdb.OpenRecordset("SUM(FQT.FQT_QUANTITYIN) AS PRS_QUANTITY, FQT.PRS_NUME, FQT.PRS_NAME
............
#13

إلى الأخ طارق

شكرا جزيلا و أنا شاكرة جدا على مساعدتك لي لقد أفادتني كثيرا

لقد طبقت الكود كما شرحته و قد كانت النتيجة ممتازة

لك كل الشكر على وقتك و مساعدتك

#14

صباح الخير

بعد أن وضعت الاستعلام السابق أصبح استطيع إظهار الرصيد بين تاريخين كما أريد

و لكن لدي سؤال

كيف يمكن أن أضع استعلام يحسب لي الرصيد بنفس الطريقة و لكن دون إظهار المواد التي رصيدها صفر

ولكم الشكر

#16

صباح الخير

إلى الأخ طارق شكرا جزيلا على المساعدة

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