المبيعات حسب موظف المبيعات
عدد الفواتير وصافي المبيعات لكل موظف مبيعات خلال فترة.
الأداة
SELECT T1.SlpName, COUNT(T0.DocEntry) AS Invoices, SUM(T0.DocTotal - T0.VatSum) AS NetSales FROM OINV T0 INNER JOIN OSLP T1 ON T0.SlpCode = T1.SlpCode WHERE T0.CANCELED = 'N' AND T0.DocDate BETWEEN '[%0]' AND '[%1]' GROUP BY T1.SlpName ORDER BY NetSales DESC
SELECT T1."SlpName", COUNT(T0."DocEntry") AS "Invoices", SUM(T0."DocTotal" - T0."VatSum") AS "NetSales" FROM OINV T0 INNER JOIN OSLP T1 ON T0."SlpCode" = T1."SlpCode" WHERE T0."CANCELED" = 'N' AND T0."DocDate" BETWEEN '[%0]' AND '[%1]' GROUP BY T1."SlpName" ORDER BY "NetSales" DESC
ما الذي يجيب عنه هذا الاستعلام
في نهاية الشهر يحتاج فريق المالية صافي المبيعات المفوترة لكل موظف مبيعات لاحتساب العمولة، ويريد مدير المبيعات معرفة من يتقدم على هدفه. ويساعد عدد الفواتير على التمييز بين من لديه صفقات قليلة كبيرة ومن لديه صفقات كثيرة صغيرة.
مثال على النتائج
قيم تجريبية توضيحية. أعمدتك هي نفسها؛ والأرقام تأتي من شركتك.
| SlpName | Invoices | NetSales |
|---|---|---|
| Sophie Klein | 64 | 72350 |
| Daniel Ortiz | 51 | 58120.4 |
| Laila Hassan | 38 | 41980 |
| -No Sales Employee- | 9 | 3260 |
SQL Server مقابل SAP HANA
يختلف اقتباس المعرّفات فقط. تعمل COUNT و SUM والطرح DocTotal - VatSum بالطريقة نفسها في HANA، والاسم المستعار المقتبس "NetSales" هو ما يشير إليه ORDER BY.
الأخطاء الشائعة وحلولها
- يظهر صف باسم '-No Sales Employee-': الفواتير المحفوظة دون موظف مبيعات تحمل SlpCode بقيمة -1، وهي موجودة في OSLP بهذا الاسم. أضف AND T0.SlpCode <> -1 لإخفائها، أو صحّح الفواتير.
- أرقام العمولات أعلى من المتوقع: لا تزال DocTotal - VatSum تتضمن الشحن والتقريب. لإيرادات الأصناف فقط، اجمع INV1.LineTotal بدلًا منها (مع تطبيق خصم الرأس، انظر أدناه)، واطرح الإشعارات الدائنة (ORIN) للمرتجعات.
- الإجماليات لا تطابق تقرير تحليل المبيعات (خصم الرأس): يقرأ هذا الاستعلام DocTotal - VatSum من رأس المستند، وهي قيمة تتضمن خصم الرأس (OINV.DiscPrcnt) والشحن. إذا غيّرته لجمع INV1.LineTotal، مثلًا لإيرادات الأصناف، فلن يكون خصم الرأس داخل LineTotal وسيضخّم مجموع الأسطر المبيعات. استخدم SUM(T1.LineTotal * (1 - T0.DiscPrcnt / 100.0)) (وفي HANA: SUM(T1."LineTotal" * (1 - T0."DiscPrcnt" / 100.0)))، واطرح الإشعارات الدائنة (ORIN/RIN1) بالمعامل نفسه. انظر عدم تطابق إجمالي المبيعات في SAP B1: حل مشكلة خصم الرأس.
استعلامات ذات صلة
مرجع الجداول: جدول OINV (فاتورة المبيعات (الرأس))
ثلاث خطوات بدون تسجيل
انسخ النسخة المناسبة
استخدم تبويب SQL Server لقواعد بيانات MS SQL، وتبويب HANA لـ SAP B1 على HANA.
افتح مولّد الاستعلامات
في SAP Business One اذهب إلى الأدوات ← الاستعلامات ← مولّد الاستعلامات (Tools → Queries → Query Generator)، والصق الاستعلام وانقر تنفيذ (Execute).
احفظ وشارك
انقر حفظ، واختر فئة، وسمِّ الاستعلام. يستطيع فريقك تشغيله من مدير الاستعلامات.
أسئلة حول هذه الأداة
كيف أشغّل استعلام «المبيعات حسب موظف المبيعات» في SAP Business One؟
انسخ النسخة التي تناسب قاعدة بياناتك، وافتح الأدوات ← الاستعلامات ← مولّد الاستعلامات، والصقه في مربع SQL وانقر تنفيذ. احفظه لإعادة استخدامه لاحقًا.
ما الجداول التي يستخدمها هذا الاستعلام؟
يقرأ OINV، OSLP من المخطط القياسي لـ SAP Business One. لا يحتاج إلى أي حقول معرّفة من قِبل المستخدم.
ماذا أُدخل عندما تفتح نافذة الاختيار؟
يستخدم هذا الاستعلام معاملات: [%0] = من تاريخ، [%1] = إلى تاريخ. يعرض SAP B1 نافذة اختيار لكل معامل عند تشغيل الاستعلام.
هل يمكن تحويله إلى لوحة معلومات أو تنبيه؟
نعم. نحوّل الاستعلامات إلى تقارير Crystal، أو تقارير Excel تتحدّث تلقائيًا، أو تنبيهات SAP B1، أو رسائل واتساب للمديرين.
مصممة لفرق SAP Business One
تحتاج هذا داخل SAP Business One؟
نطوّر إضافات وتقارير وتكاملات لـ SAP B1 على SQL Server و HANA. أخبرنا بما تحتاجه واحصل على سعر ثابت، عادةً خلال 24 ساعة.
