SQL קבל ערכים ייחודיים שאין בהם רשומות המכילות X
-
אם השאלה לא הובנה מהכותרת אסביר:
יש לי טבלה של מקומות עבודה לפי שנים וחודשים. בן אדם יכול לעבוד בכמה מקומות במקביל, והוא יכול להחליף עבודה באמצע שנה. העמודות שיש בידי הן לצורך השאילתה, שנה חודש התחלה וחודש סיום. עכשיו ככה, אם באותה שנה יש מקום עבודה אחד שהוא עבד בו מ 1-12 אני לא רוצה בכלל את השנה הזאת ברשימה שלי, אע"פ שיש מקומות אחרים באותה שנה שאין בהם רצף תעסוקתי. אבל אם אין לי באותה שנה מקום עבודה שהוא 1-12 אזי חפץ אני ברשומה אשר תציג לפני את אותה שנה כערך ייחודי בלבד.
אז אני יודע שאפשר לעשות את זה עם תת שאילתה מקוננת כך:select distinct Year, IsAWoman from ContactsWorkingPlaces wp where contactID=61094 and not exists (select id from ContactsWorkingPlaces where ContactID = wp.ContactID and Year=wp.year and fromMonth=1 and ToMonth=12)
בכל זאת אני שואל כי בימים האחרונים התגלו כאן סודות גדולים של SQL ואולי יש כאן עוד מדהים בפשטותו, softs לטיפולך
פורסם במקור בפורום CODE613 ב29/10/2014 10:46 (+02:00)
-
אני עסוק כ"כ שאין לי פנאי להעמיק בענין
אקווה שבימים קרוביםעריכה:
אני לא רואה פתרון טוב יותר
מה שכן WHERE זה לא המקום לשים תת שאילתה כי היא מבוצעת בנפרד עבור כל שורה
שים LEFT JOIN עם תנאי IS NULL או OUTER APPLYפורסם במקור בפורום CODE613 ב29/10/2014 16:13 (+02:00)