› פורומים › אפיון ופיתוח פריוריטי › הפיכת נתוני שורה לעמודה ( הפיכה לעמודה בטבלה)
- This topic has 12 תגובות, 4 משתתפים, and was last updated לפני 15 שנים, 5 חודשים by roni.
- Post
- Replies
-
- מאי 13, 2009 בשעה 11:45 am
מארק, אני לא יודע אם רוני יבין מה שהתכוונת, אני לא.רוני אם תרצה סה"כ כזה (סיכום לפי מק"ט ומחסן ללא תלות במשתנים האחרים כמו סטטוס, פק"ע/מנה וכו'), כל עוד מדובר במחסנים קבועים אפשר ב-select אחד.
אולי לזה מארק התכוון.
הרי אתה צריך ביטוי עבור כל אחד מה עמודות:
האם המחסן בשורה הוא זה שצריך להיות בעמודה זו אם כן להביא את הכמות אחרת להביא 0. וכל אחד מאלה אתה עותף ב-SUM כדי לקבל שורה אחת לפריט שכולל את כל המחסנים.הייתי תמיד מוסיף עמודה נוספת לכל המחסנים עבורם אין עמודה ספציפית.
תרגיש חופשי להכין טבלה כזאת אבל מעניין אותי למה אתה צריך טבלה בצורה כזאת? אילוצים של הדו"ח לתוכו מביאים את הטבלה?
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- מאי 13, 2009 בשעה 10:10 pm
מה שאתה צריך לעשות זה דוח טבלאי – crosstab המבוסס על הדוח הקיים. כאשר עמודת המחסן היא בציר ה X
אתה יודע איך לבנות דוח כזה ?- מאי 14, 2009 בשעה 8:59 am
אני רוצה לדעת איך עושים CROSSTAB לטבלה ולא לדוח ( בדוח אני יודע).
אני צריך את הנתונים לחישובים נוספים
האם אפשר לקבל קוד פשוט לדוגמה עבור 2 מחסנים כאשר אותו פריט יכול להיות או לא בכל אחד מהםאני מתכוון משהו בסגנון
[code:1]
SELECT BALANCE AS BALWAR1, BALNCE AS BALWAR2
FORM WARHSBAL A ,WARHSBAL B
WHERE
…
[/code:1]תודה
רוני- מאי 14, 2009 בשעה 9:01 am
אני רוצה לדעת איך עושים CROSSTAB לטבלה ולא לדוח ( בדוח אני יודע).
אני צריך את הנתונים לחישובים נוספים
האם אפשר לקבל קוד פשוט לדוגמה עבור 2 מחסנים כאשר אותו פריט יכול להיות או לא בכל אחד מהםאני מתכוון משהו בסגנון
[code:1]
SELECT BALANCE AS BALWAR1, BALNCE AS BALWAR2
FORM WARHSBAL A ,WARHSBAL B
WHERE
…
[/code:1]תודה
רוני- מאי 14, 2009 בשעה 10:22 am
משהו כמו:SELECT
(WARHS = 1 ? BALANCE : 0),
(WARHS = 2 ? BALANCE : 0),
(WARHS = 3 ? BALANCE : 0)
FROM WARHSBAL…כמובן אפשר להוסיף loop של WARHS.
- מאי 14, 2009 בשעה 11:38 am
תודה מרק
אבל איך אני יוצר עמודה ניפרדת לכל מחסן ושולח לשם את הנתון המתאים ?
קוד זה שותל את היתרה לכל המחסנים באותה עמודה
(WARHS = 1 ? BALANCE : 0),(WARHS = 2 ? BALANCE : 0
אני רוצה למלא נתונום לטבלה כזו
balwar2 balwar1 part
תודה
רוני- מאי 14, 2009 בשעה 12:01 pm
מחסנים קבועים או כל המחסנים שיש ? כמה מחסנים מקסימום ?אם כל המחסנים – אתה צריך טבלה עם הרבה מאוד INT (עמודה לכל מחסן)
INSERT INTO XXXX_STACK
(BAL1 , BAL2, BAL3)
SELECT
(WARHS = 1 ? BALANCE : 0),
(WARHS = 2 ? BALANCE : 0),
(WARHS = 3 ? BALANCE : 0)
FROM WARHSBAL…- מאי 14, 2009 בשעה 2:58 pm
אני חושב ששכחתם את ה SUM על כל עמודה ועמודה ב SELECT.- מאי 14, 2009 בשעה 5:36 pm
רוניקודם כל דע שזו השיטה הכללי בכל RDBMS (דטהבייס רלציוני) שתמצא אא"כ יש לו פקודת CROSSTAB מיוחד. לדוגמה ב-SQL SERVER יש כזה רק בגרסאות האחרונות, ובכל זאת יכול להיות קל יותר בשיטה זו. אז אל תחשוב שבפריוריטי זה מורכב או המערכת לא חכמה במיוחד…
הייתי רק אדגיש שכמה שתשים עמודות למחסנים, שמור על מחשבה קדימה.
השאילתא שאתה כותב פה יתייחס למחסנים שיש לך היום. אתה לא יודע מה יהיה בעתיד. תוסיף עמודה נוספת מעין
[code:1]SUM( (WARHS NOT IN (1,2,3) : BALANCE : 0 ) )[/code:1]
כדי שמלאי במחסן אחר עתידי לא ילך לאיבוד ולא יופיע בדו"ח שלך.
אם זה היה מובן מאליו, אני מתנצל.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
- יש להתחבר למערכת על מנת להגיב.