שאלת SQL

amitk80

New member
שאלת SQL

שלום, יש לי שאילתה ששולפת אירועי בסיס (שעון חורף לצורך הדוגמא) ואירועי חגים (ראש השנה, יום כיפור וכו') בהצלבה על טבלת תאריכים. להלן השאילתה: select * from (select * from "EVENTS" e inner join DAYOFWEEK d on d."DATE" between e.FROMDATE and e.TODATE where e.PERIODDESC='בסיס') base union (select * from "EVENTS" e1 inner join DAYOFWEEK d1 on d1."DATE" between e1.FROMDATE and e1.TODATE where e1.PERIODDESC='אירוע') יש לי למשל מקרה שבו ה 1.1.12 הוא ראש השנה האזרחית - אירוע וגם הוא בתקופת שעון חורף - בסיס במקרה כזה האירוע חזק יותר מהבסיס. כיצד אני מאלץ בשאילתת SQL להציג את האירוע בלבד. הטבלאות בנויות כך: events: periodID,FromDate,ToDate,PeriodName,PeriodDesc,PeriodType Dayofweek Date,Day,DayofWeek אודה לכל עזרה. תודה
 

pitoach

New member
במקום הסבר במילים אם תצרף DDL+DML נוכל לעזור

בקלות ולהריץ את השאילתה אצלנו ולא רק לנחש בראש
 

גרי רשף

New member
הייתי מציע כך

בחלק העליון של ה-UNION בו אתה שולף מה"בסיס", הוסף תנאי- שהתאריך אינו בבסיס (אינני יכוול להציג זאת כאן ב-SQL כי לא ברור לי לגמרי כיצד הטבלה בנויה). לחילופין- במקום UNION בצע GROUP BY על הטבלה עבור השורות שהן גם אירוע וגם בסיס, ועם מה שתקבל בצע JOIN עם ימי השבוע. מקווה שזה עוזר במשהו..
 
למעלה