נתונה הטבלה הבאה. טבלה זו מתארת פעולות כספיות של לקוחות חברת הימורים
CREATE TABLE bet_tbl (betID int, customerID int, betDate date, betOutcome bit, amount int)
עבור כל פעולת הימור ניתן לראות את הנתונים הבאים :
- מספר ההימור (betID)
- מספר הלקוח (CustomerID)
- תאריך ההימור (betDate)
- תוצאת ההימור (BetOutcome) – כאשר 0 מסמל הפסד, 1 מסמל רווח
- סכום (amount)
לדוגמא ניתן לראות כי לקוח מספר 1 הרוויח 500 במצטבר.
מטלה ראשונה – הציגו את הרווח הגבוה ביותר ואת ההפסד הגבוה ביותר עבור כל אחד מהלקוחות השונים.
מטלה שניה – הציגו את הרווח ההפסד המצטבר עבור כל אחד מהלקוחות השונים.
רם שלום,
מצורפת תשובה חלקית – כל שאילתא בנפרד.
כיצד ניתן לאחד/לחסר(UNION לא מאפשר)?
תודה.
שאלה ראשונה:
שאלה שניה:
היי,
בפתרון הראשון לא ניתן לשלב את שתי השאילתות מכיוון שה ORDER BY חייב להגיע פעם אחת ובסוף. אך ברגע שה ORDER BY יורד מהשאילתא הראשונה התוצאה שלה לא מחזירה את מה שרצית להציג.
בפתרון השני ניתן לשלב את שתי השאילתות אך במקרה הזה מתקבלות 4 שורות (ולא 2 כפי שהתרגיל ביקש)
הרעיון לשלב שאילתות נפרדות כדי לקבל תוצאה מצוין ! והשילוב של תוצאות פונקציות הקבוצה הוא הדרך הנכונה. במקרה שלנו יש דרך קצת יותר מתחכמת לפתור 🙂
אני נותן עוד יום – יומיים לחבר'ה שלנו לנסות לפתור ואז מעלה את התשובות.
תודה 🙂
העליתי פתרון. תהנו 🙂
הרבה יותר מסובך,אבל עובד, חייבת לאמץ את הפתרון שלך
היי רם, מצרף פתרון נוסף לשאלה 1:
צהרים טובים
תודה על האתר והחידות כל פעם שיש לי קצת זמן אני גולש לפה להנות קצת..
מעלה כאן תשובה ללא CASE , פרמטרים, לולאות ודומיהם פרי הרוע של החשיבה התכנותית
כפי שאתה אומר החשיבה הSETית היא האתגר כאן..
היי רן,
שאלה לגבי התשובה השנייה – מדוע כתבת amount*-1?
טנקס
היי מזי, כדי לבצע את הסכימה הסופית ע"י חיבור של ערכים חיוביים ושליליים