עזרה בשאילתא

squishi

New member
עזרה בשאילתא

אהלן,
שמחתי מאד לגלות פורום ישראלי בנושא, ומקווה שתוכלו לעזור לי:)

אני עובדת בSQL SERVER

יש לי טבלה בה 4 עמודות
- UserID (מזהה תלמיד)
- Subject (נושא של שאלה)
- QuestionID (מזהה לשאלה)
- QuestionGrade (ציון שקיבל התלמיד בשאלה)

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

אני מעוניינת לבצע שאליתא שתוציא את הציון הממוצע של תלמיד *בנושא* מסוים
כלומר שעבור כל תלמיד, אני אוכל לראות עבור כל נושא בו פתר שאלות את הציון הממוצע בנושא הזה.

האם תוכלו לעזור לי?

המון תודה!
 

AvidaEinav

New member
Pivot

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

מקווה שהבנתי למה התכוונת ושזה עזר..
 

squishi

New member
main, pivot

הי עינב,

ראשית המון תודה על התשובה המושקעת!!

אני חושבת שאולי לא חידדתי מספיק טוב את הקשר בין הפרמטרים -
כל QuestionGrade הוא של QuestionID. וכל QuestionID משוייך לsubject מסויים (שהוא מיוצג במספרים, אבל זה לא קריטי)

האמת היא שאני לא מכירה מקרוב את השימוש בPIVOT, ובייחוד לא מוכרים, בכתיבת SQL, ה-main והpiotmain.
ניסיתי לכתוב את מה שכתבת, ומיד לאחר פתיחת הפיבוט - הוא לא מזהה את שמות השדות שלי.
יש משהו שאני מפספסת?
כנראה שאני לא כל כך מבינה את המשמעות של הפיבוט, בשילוב עם הmain
 

AvidaEinav

New member
תשובה

היי,
ראשית זה אבידע, עינב זה השם משפחה...

* כל QuestionGrade הוא של QuestionID. וכל QuestionID משוייך לsubject מסויים (שהוא מיוצג במספרים, אבל זה לא קריטי)

זה בדיוק מה שעשיתי, נתתי לך את הממוצע של הציונים של כל תלמיד בנושא מסויים - תקני אותי בבקשה אם טעיתי.

את ה main וה Piotmain (אמור להיות PivotMain) את יכולה להחליף בכל דבר שאת רוצה M,P או מה שבא לך, אין לזה חשיבות.

שימי לב שבמקום ה [Math],[English] את צריכה לשים את מספרי הנושאים שלך (אל תורידי את ה []..), כל הנושאים האפשריים אמורים להופיע פה ([x],]y],[z]..).

אם עדיין יש לך בעייה פשוט תעלי לפה את מה שכתבת..
 

squishi

New member
Compatability Level

הי אבידע (סליחה על הטעות קודם)

השאילתא שלך כנראה נהדרת, רק הבעיה כעת היא אצלי -
הcompatability level של הDB הוא 80... וממה שקראתי באינטרנט זה לא יעבוד עם פחות מ90
יש דרך לפתור זאת?
 

AvidaEinav

New member
דרך אחרת

היי,
קודם כל מצורף פה פתרון אחר לבעיה ללא Pivot.

בנוגע ל compatability level אני צריך לבדוק...
 

squishi

New member
כל כך פשוט?!

וואו... הייתי בטוחה שזה יהיה הרבה יותר מסובך.

אז הרעיון הוא שברגע שאני אומרת לו לעשות Group by לפי פרמטרים - הוא מבין שהוא עושה את הממוצע לשדות של הקיבוץ הזה?
אדיר... כשחשבתי על זה בהתחלה, אמרתי שאין מצב שזה יעבוד, שאת הממוצע הוא יעשה לכל הרשומות שיעלו מלכתחילה

תודה רבה אבידע!
 
למעלה