הפיכת נתוני שורה לעמודה ( הפיכה לעמודה בטבלה)

פורומים אפיון ופיתוח פריוריטי הפיכת נתוני שורה לעמודה ( הפיכה לעמודה בטבלה)

  • Post
    roni
    משתתף
    היי
    מהי הדרך למלא עמודת טבלה (לדוגמה STACK4 ) בנתונים שמופיעים בשורה

    לדוגמה דוח מלאי למחסן מציג
    מקט כמות מחסן
    1 1 3
    1 2 4
    2 3 4

    אני רוצה לשלוח נתונים אלה לטבלה ( לא לדוח ) בצורה כזו

    ן
    מקט כמות במחסן 3 כמות במחסן 4 כמות במחסן 5
    1 1 2
    2 3

    תודה

מוצגות 12 תגובות – 1 עד 12 (מתוך 12 סה״כ)
  • Replies
    מארק
    משתתף
    none
    מחסנים קבועים? אם כן – פשוט לכתוב שלושה SELECTs.
    yitzchok
    משתתף
    IL
    מארק, אני לא יודע אם רוני יבין מה שהתכוונת, אני לא.

    רוני אם תרצה סה"כ כזה (סיכום לפי מק"ט ומחסן ללא תלות במשתנים האחרים כמו סטטוס, פק"ע/מנה וכו'), כל עוד מדובר במחסנים קבועים אפשר ב-select אחד.

    אולי לזה מארק התכוון.

    הרי אתה צריך ביטוי עבור כל אחד מה עמודות:
    האם המחסן בשורה הוא זה שצריך להיות בעמודה זו אם כן להביא את הכמות אחרת להביא 0. וכל אחד מאלה אתה עותף ב-SUM כדי לקבל שורה אחת לפריט שכולל את כל המחסנים.

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

    תרגיש חופשי להכין טבלה כזאת אבל מעניין אותי למה אתה צריך טבלה בצורה כזאת? אילוצים של הדו"ח לתוכו מביאים את הטבלה?

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    Lior
    מנהל בפורום
    מה שאתה צריך לעשות זה דוח טבלאי – crosstab המבוסס על הדוח הקיים. כאשר עמודת המחסן היא בציר ה X
    אתה יודע איך לבנות דוח כזה ?
    roni
    משתתף
    אני רוצה לדעת איך עושים CROSSTAB לטבלה ולא לדוח ( בדוח אני יודע).
    אני צריך את הנתונים לחישובים נוספים
    האם אפשר לקבל קוד פשוט לדוגמה עבור 2 מחסנים כאשר אותו פריט יכול להיות או לא בכל אחד מהם

    אני מתכוון משהו בסגנון
    [code:1]
    SELECT BALANCE AS BALWAR1, BALNCE AS BALWAR2
    FORM WARHSBAL A ,WARHSBAL B
    WHERE

    [/code:1]

    תודה
    רוני

    roni
    משתתף
    אני רוצה לדעת איך עושים CROSSTAB לטבלה ולא לדוח ( בדוח אני יודע).
    אני צריך את הנתונים לחישובים נוספים
    האם אפשר לקבל קוד פשוט לדוגמה עבור 2 מחסנים כאשר אותו פריט יכול להיות או לא בכל אחד מהם

    אני מתכוון משהו בסגנון
    [code:1]
    SELECT BALANCE AS BALWAR1, BALNCE AS BALWAR2
    FORM WARHSBAL A ,WARHSBAL B
    WHERE

    [/code:1]

    תודה
    רוני

    מארק
    משתתף
    none
    משהו כמו:

    SELECT
    (WARHS = 1 ? BALANCE : 0),
    (WARHS = 2 ? BALANCE : 0),
    (WARHS = 3 ? BALANCE : 0)
    FROM WARHSBAL…

    כמובן אפשר להוסיף loop של WARHS.

    roni
    משתתף
    תודה מרק
    אבל איך אני יוצר עמודה ניפרדת לכל מחסן ושולח לשם את הנתון המתאים ?
    קוד זה שותל את היתרה לכל המחסנים באותה עמודה
    (WARHS = 1 ? BALANCE : 0),

    (WARHS = 2 ? BALANCE : 0

    אני רוצה למלא נתונום לטבלה כזו

    balwar2 balwar1 part

    תודה
    רוני

    מארק
    משתתף
    none
    מחסנים קבועים או כל המחסנים שיש ? כמה מחסנים מקסימום ?

    אם כל המחסנים – אתה צריך טבלה עם הרבה מאוד INT (עמודה לכל מחסן)

    INSERT INTO XXXX_STACK
    (BAL1 , BAL2, BAL3)
    SELECT
    (WARHS = 1 ? BALANCE : 0),
    (WARHS = 2 ? BALANCE : 0),
    (WARHS = 3 ? BALANCE : 0)
    FROM WARHSBAL…

    Lior
    מנהל בפורום
    אני חושב ששכחתם את ה SUM על כל עמודה ועמודה ב SELECT.
    מארק
    משתתף
    none
    נכון.
    yitzchok
    משתתף
    IL
    רוני

    קודם כל דע שזו השיטה הכללי בכל RDBMS (דטהבייס רלציוני) שתמצא אא"כ יש לו פקודת CROSSTAB מיוחד. לדוגמה ב-SQL SERVER יש כזה רק בגרסאות האחרונות, ובכל זאת יכול להיות קל יותר בשיטה זו. אז אל תחשוב שבפריוריטי זה מורכב או המערכת לא חכמה במיוחד…

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

    השאילתא שאתה כותב פה יתייחס למחסנים שיש לך היום. אתה לא יודע מה יהיה בעתיד. תוסיף עמודה נוספת מעין

    [code:1]SUM( (WARHS NOT IN (1,2,3) : BALANCE : 0 ) )[/code:1]

    כדי שמלאי במחסן אחר עתידי לא ילך לאיבוד ולא יופיע בדו"ח שלך.

    אם זה היה מובן מאליו, אני מתנצל.

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    roni
    משתתף
    תודה
    עודף הסבר אף פעם לא מזיק
    ספציפית זה עזר
מוצגות 12 תגובות – 1 עד 12 (מתוך 12 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.