לדלג לתוכן הראשי

החישובים מאחורי המלאי והקיטים

קוד המקור, רמת הפירוט ונקודות בדיקה לשאלות בנושא מלאי וקיטים.

נכתב על ידי Alex Merkin

המספור תואם לתיקיות: בתיקייה 01 מופיעות השאלות 01-01, 01-02 וכן הלאה. שלוש שאלות ההתחלה הן 01-05, 01-08 ו־01-02; מקור ערכי פילטר התהליך הוא 01-20. מזהי OBP ושמות קובצי SQL נשארים קבועים.

זהו צילום המקור שנבדק ב־8 בנובמבר 2026, ולא SQL ששוחזר מהכותרת. החליפו {{schema}} בסכימה המורשית שלכם והריצו שאלה אחת בכל פעם. פילטרי הדשבורד והתצוגה אינם כלולים כאן. כינויי העמודות והערכים בעברית נשמרו בדיוק כפי שהם בשאלות המקור.

03-01 · רשומות מלאי לפי מצב

ספירת רשומות לפי מצב המלאי ומצב הייצור. רשומת מלאי עשויה לייצג יותר מיחידה אחת.

דגש לבדיקה: זהו מספר רשומות ולא SUM(quantity). רשומה יכולה לייצג יחידה, אצווה או כמות חומר.

SELECT stockstatus AS "מצב מלאי",productionstatus AS "מצב ייצור",count(*) AS "רשומות מלאי" FROM {{schema}}.stock WHERE deletedat IS NULL GROUP BY 1,2 ORDER BY 3 DESC;

03-02 · כמות זמינה לפי מק״ט וגרסה

הכמות הזמינה הרשומה ומספר רשומות המלאי לכל מק״ט וגרסה. אין להסיק מכך זמינות להזמנה מסוימת בלי לבדוק את תהליך ההקצאה בארגון.

דגש לבדיקה: אין הגבלה למצב מלאי מסוים ואין חישוב הקצאה לפקודת עבודה מסוימת.

SELECT sku AS "מק״ט",skurev AS "גרסה",count(*) AS "רשומות מלאי",sum(availablequantity) AS "כמות זמינה רשומה" FROM {{schema}}.stock WHERE deletedat IS NULL GROUP BY 1,2 ORDER BY 1;

03-03 · יחידות וסידוריים — איתור

טבלת איתור לפי מק״ט, סידורי ופקודה, עם מצב, כמות ומזהה ריצת ייצור. המזהים הם ערכים בטבלה, לא קישורים מובנים לדוחות Next Plus.

דגש לבדיקה: סידורי לבדו אינו בהכרח ייחודי. מזהי הריצות הם ערכים ולא קישורי דוח מובנים.

SELECT sku AS "מק״ט",serial AS "סידורי",skurev AS "גרסה",workordernumber AS "פקודה",stockstatus AS "מצב מלאי",productionstatus AS "מצב ייצור",quantity AS "כמות",workflowsessionitemid AS "מזהה ריצה" FROM {{schema}}.stock WHERE deletedat IS NULL ORDER BY sku,serial;

03-04 · מלאי ללא ריצת ייצור מקושרת

רשומות מלאי ללא מזהה ריצה מקושר. חומר גלם או מלאי אחר עשויים להופיע כאן באופן תקין.

דגש לבדיקה: לא מזוהה מזהה שאינו NULL ומצביע לריצה שנמחקה. חומר גלם ללא ריצה עשוי להיות תקין.

SELECT sku AS "מק״ט",serial AS "סידורי",workordernumber AS "פקודה",stockstatus AS "מצב מלאי",source AS "מקור",created AS "תאריך יצירה" FROM {{schema}}.stock WHERE deletedat IS NULL AND workflowsessionitemid IS NULL ORDER BY created DESC;

03-05 · יצירת רשומות מלאי לפי חודש

כמה רשומות מלאי נוצרו בכל חודש. אינו סיכום של כמויות מלאי.

דגש לבדיקה: זו אינה תנועת מלאי או השינוי בכמות המלאי בחודש.

SELECT date_trunc('month',created) AS "חודש יצירה",count(*) AS "רשומות מלאי" FROM {{schema}}.stock WHERE deletedat IS NULL GROUP BY 1 ORDER BY 1;

03-06 · רשומות מלאי לפי מקור

מספר רשומות המלאי לפי המקור הרשום. מקור חסר מוצג כ־local.

דגש לבדיקה: NULL מוחלף ב־local; טקסט ריק נשאר ריק. בשאלה 03-04 המקור מוצג ללא החלפה זו.

SELECT coalesce(source,'local') AS "מקור",count(*) AS "רשומות מלאי" FROM {{schema}}.stock WHERE deletedat IS NULL GROUP BY 1 ORDER BY 2 DESC;

03-07 · מלאי מנוהל סידורית לעומת יתר המלאי

חלוקת רשומות לפי סימון ניהול סידורי. קבוצת אחר כוללת גם ערכים חסרים.

דגש לבדיקה: false ו־NULL נכללים יחד בקבוצה האחרת. אין בדיקה ששדה הסידורי עצמו מלא.

SELECT CASE WHEN isserial THEN 'מנוהל סידורית' ELSE 'אחר' END AS "ניהול מלאי",count(*) AS "רשומות מלאי" FROM {{schema}}.stock WHERE deletedat IS NULL GROUP BY 1;

03-08 · שלמות קיט רשומה ביחידות מלאי

מספר רשומות המלאי שסומנו כקיט שלם ומספר הרשומות שלא סומנו כך, לפי מק״ט. הקבוצה השנייה כוללת גם רשומות ללא סימון. השאלה אינה בודקת אילו רכיבים חסרים בקיט.

דגש לבדיקה: false ו־NULL מקובצים יחד. אין חיבור לרכיבי הקיט או חישוב מחודש של חוסרים.

SELECT sku AS "מק״ט",count(*) AS "רשומות מלאי",count_if(kitstatus=true) AS "מסומנות קיט שלם",count_if(kitstatus=false OR kitstatus IS NULL) AS "אינן מסומנות קיט שלם" FROM {{schema}}.stock WHERE deletedat IS NULL GROUP BY 1 ORDER BY 2 DESC;

03-09 · מק״טים שנצפו במלאי

רשימת מק״טים שמופיעים ברשומות מלאי, עם תיאור שנלקח מהרשומות ומספר הרשומות לכל מק״ט. הרשימה אינה קטלוג הפריטים המלא; ייתכנו תיאורים שונים לאותו מק״ט.

דגש לבדיקה: התיאור נבחר באמצעות MAX(skudesc), ולא לפי העדכון האחרון. ברשומות שונות עשויים להיות תיאורים שונים.

SELECT sku AS "מק״ט",max(skudesc) AS "תיאור שנצפה",count(*) AS "רשומות מלאי" FROM {{schema}}.stock WHERE deletedat IS NULL GROUP BY 1 ORDER BY 1;

06-04 · תוצאות כיסוי קישור מלאי לריצות

כמה רשומות מלאי כוללות מזהה ריצה וכמה אינן כוללות. אינו בודק שהריצה המקושרת עדיין קיימת.

דגש לבדיקה: מזהה שאינו NULL נחשב למקושר; אין חיבור שמוודא שהריצה קיימת.

SELECT CASE WHEN workflowsessionitemid IS NULL THEN 'ללא קישור לריצה' ELSE 'עם קישור לריצה' END AS "קישור לריצת ייצור",count(*) AS "רשומות מלאי" FROM {{schema}}.stock WHERE deletedat IS NULL GROUP BY 1;

מאמרים קשורים

האם קיבלת תשובה לשאלתך?