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

طلب Store procedure تجمع المبيعات كل ساعة يوميا

مغلق
بدأه samahy333 في 5 أبريل 2006 · 7 رد · 914 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله ارجو مساعدتى حيث اننى اعمل على برنامج POS وطلب ان اقوم بعمل Store Procedure تقوم بعمل تجميع للمبيعات فى كل ساعة بمعنى عند اختيار تاريخ معين من خلال تقرير يظهر فى كل ساعة من اليوم اجمالى مبيعات كل ساعة

#3

السلام عليكم ورحمة الله شكرا على المقالة وكانت بالفعل جيدة ولكن المشكلة ان الهدف من عمل store procedure هو استخدامها لاحقا فى تقرير للبرنامج POS بحيث يتم استدعاء التقرير من البرنامج فعند اختيار تاريخ معين يظهر فى التقرير ساعات اليوم مجمع بيها المبيعات الخاصة بكل ساعة

مثلا يوم 1\1\2006

ساعة 1 الى الساعة 2 مبيعات 3000 جنيه وهكذا

#4

فعلا سؤالك رائع جدا

أنا بعرف الأمر

Waitfor Time 'HH:MM:SS'

لكن صدقا عمل جدولة لإجراء معين خلال أيام معينه ما خطرت على بالي أبدا

إذا بدك ممكن تعمل إجراء يعمل كل ساعة

يقرأ مجموعة معينة من الجداول و يقوم بحساب

نسبة المبيعات لساعة معينة و هي ساعة

مناداة التابعة "ساعة جديدة"

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

هذا الجدول يحتوى على

تاريخ اليوم + الساعة = مفتاح أساسي

و القيمة الإجمالية للبيع في هذه الساعة

و عندما تريد أي قيمة تقوم بعمل إستعلام صغير على هذا الجدول

أرجوا إني كون فدتك

سلام

#5

السلام عليكم يا اخى Designen شكرا على اهتمامك برد على هذا التساؤل

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

انت تقصد ان اقوم بعمل الاتى

اولا اقوم بعمل اجراء ( اعتقد انك تقصد store procedure) يعمل كل ساعة لذلك انا اقترح يكون هناك Trigger او باللغة العربية محفز يقوم بتنشيط الاجراء او Store procedure ليقوم بالعمل كل ساعة

يقوم الاجراء الذى يحتوى على جملة Select بقراءة اجمالى المبيعات المسجلة فى جدول INVOICE ولكن هناك مشكلة ان كل مرة يتم فيها هذا الاجراء يجمع مبيعات كلها من بداية العمل حتى ساعة التى عمل فيها الاجراء

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

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

شكرا للرد فى انتظار ردك ان شاء الله

#6

يمر في رأسي حل لسؤالك باستعمال الدالة convert على التاريخ والوقت الحالي (أو المحدد من قبل المستخدم، والذي لن يكون الحالي طبعاً) والتاريخ والوقت المخزن مع المعامل 108 لاقتطاع جزء الوقت منهما، ومن ثم إجراء استعلام للحصول على السجلات ذات الوقت المحصور بينهما.

ولكن أولا بنية الجداول حتى أستطيع المضي قدما في مساعدتك

:)

فكر بطريقة أخرى

#7

شكرا للاخ WALCOM على الرد

بالنسبة لبنية الجداول بالنسبة للمبيعات هناك جدول للاسماء وجدول للمبيعات

جدول المبيعات يحتوى على

ID

NAME_ID

SALE_DATE

JV_ID رقم فاتورة البيع

ITEM_ID

QUANTITY

PRICE

NOTE

TOTAL_SALE

شكرا لك

#8

إنت عندك جدول مبيعات يحتوى على حركة المبيعات

أنا فكرتي إنشاء جدول له الأعمدة

Date , Time , SUM

حيث يقوم التابع عند زمن معين في كل ساعة بالعمل

ليقوم بتنفيذ نفسه و سيكون تقريبا

يحتوى على هذه الإستعلامات

Declare @Total Int 

Select 
	@Total = Sum ( Total_Sale ) 
From
	X
Where
	DatePart ( HH , Sale_Date ) = DatePart ( HH , GetDate () ) - 1 AND
	DateDiff ( DD , Sale_Date , GetDate () ) = 0 
Group By 
	Sale_Date 

Insert Into X 
Values
(
	Convert ( DateTime , GetDate () , 103 ) , 
	DatePart ( HH , Convert ( DateTime , GetDate () , 8 ) ) - 1 , 
	@Total 
)

طبعا في حال عرفنا كيف نضع إجراء موضع الجدولة

كل شي هيكون سهل

طبعا بدنا ناقش حالة آخر ساعة في اليوم

سلام

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

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