אופיס 365 איך עושים את זה? SQL

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
יש לי 4 טבלאות
1. נתוני אב - משפחות
2. שאילתת המרת תאריך - ימי הולדת (מקושר לנתוני אב בקשר של יחיד-לקוחות לרבים - המרת תאריך, כלומר לכול לקוח יכולים להיות כמה ימי הולדת)
3. טבלת הטבות (בה יש גם עמודות הנותנות להטבות טווח גילאים ראש וסף)
4. טבלת לקוחות- הטבות המשייכת ללקוחות הטבות המגיעים להם

ובכן לעבודה:
אני מעוניין לייצר שאילתת הוספה שתוסיף את העמודות "מזהה לקוח" ומזהה הטבה" בטבלת לקוחות הטבות (שאר העמודות שם יש ברירת מחדל).

אז בסך הכל ביקשתי בשאילתת בחירה את העמודות "מס' זהות" מטבלת נתוני אב ואת העמודה "מזהה הטבה" מטבלת הטבות

ו
הקרטריונים כך:
"מס' הזהות" יהיו רק אלו שבשדה "שולם" = TRUE
"מס' הזהות" יהיו רק מאלו שיש להם רשומה מקושרת בהמרת תאריך שבשדה "תאריך לידה עברי" יש את המילה חשון
"מזהה ההטבה" יותאם רק למי ששדה "גיל" בהמרת תאריך אינו לפני הערך שבשדה "טווח גילאים ראש" ולא אחרי "טווח גילאים סף".

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

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
יש מישהו בבית? משהו יכול לעזור?
 

UU

משתמש סופר מקצוען
הנדסת תוכנה
זה מריח לי כמו JOIN במקום LEFT JOIN באנשהוא
אני מתכנתת, ולא ממש מכירה את אקסס (למדתי אותו אי פעם, לא יותר מכך)
אפשר אולי את השאילתה ב-SQL כמות שהיא? (select * from וכו')
אשמח לנסות לראות אם יכולה לעזור
בהצלחה
 

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
אתה מבין שעם הגדרה כ"כ מעורפלת מאוד קשה לעזור לך
הכי טוב יהיה אם תעלה דוגמה
בבקשה דוגמא:
אני מבין שברגע שיש טבלה בה אין רשומה אחת מקושרת לטבלה אחרת התוצאה היא 0 אך בכל זאת איך זה כן ניתן?
 

קבצים מצורפים

  • דוגמא.zip
    KB 82.4 · צפיות: 24

UU

משתמש סופר מקצוען
הנדסת תוכנה
אני לא יודעת טוב אקסס, אבל כן יודעת טוב מאד SQL
אנסה לעזור כך - אם אפשר בשביל הניסיון לבודד את הערך שעושה בעיה, כלומר להסיר את ההגבלות אחת אחת ולראות מתי השאילתה מתחילה לעבוד
אולי כך נוכל יותר לעזור
אני הייתי מסירה בשלב ראשון את התנאים שנוגעים לגיל - אם יעבוד בלדיהם - נצטרך להבין מה הם מפריעים, אם לא - הבעיה היא כנראה יותר מקיפה
 

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
הצלחתי!!!

כתבתי כך:
קוד:
INSERT INTO [הטבות ללקוחות] ( [מזהה לקוח], [מזהה הטבה] )
SELECT [נתוני אב].[מס' זהות], הטבות.[מזהה הטבה]
FROM הטבות, [נתוני אב] INNER JOIN [המרת תאריך] ON [נתוני אב].מזהה = [המרת תאריך].מזהה
WHERE ((([נתוני אב].שולם)=True) And ((הטבות.[טווח גילאים ראש])<=[המרת תאריך].גיל) And ((הטבות.[טווח גילאים סף])>=[המרת תאריך].גיל) And (([המרת תאריך].[תאריך לידה עברי]) Like "*" & [הקלד חודש] & "*") And (הטבות.[מתאים לבן]=([המרת תאריך].מין="ז")) And (הטבות.[מתאים לבת]=([המרת תאריך].מין="נ")));

תודה לכל העוזרים והמסעיים
 

UU

משתמש סופר מקצוען
הנדסת תוכנה
הצלחתי!!!

כתבתי כך:
קוד:
INSERT INTO [הטבות ללקוחות] ( [מזהה לקוח], [מזהה הטבה] )
SELECT [נתוני אב].[מס' זהות], הטבות.[מזהה הטבה]
FROM הטבות, [נתוני אב] INNER JOIN [המרת תאריך] ON [נתוני אב].מזהה = [המרת תאריך].מזהה
WHERE ((([נתוני אב].שולם)=True) And ((הטבות.[טווח גילאים ראש])<=[המרת תאריך].גיל) And ((הטבות.[טווח גילאים סף])>=[המרת תאריך].גיל) And (([המרת תאריך].[תאריך לידה עברי]) Like "*" & [הקלד חודש] & "*") And (הטבות.[מתאים לבן]=([המרת תאריך].מין="ז")) And (הטבות.[מתאים לבת]=([המרת תאריך].מין="נ")));

תודה לכל העוזרים והמסעיים

יואו!
זה נורא בעברית...
אין לי שום הגדרה אחרת חוץ מנורא נוראות....

שמחה שהצלחת!.
 

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
זה נורא בעברית...
כרגע אני בתורת מתחיל....
ברור שבהמשך אשנה כיוון ע"מ שהמערכת תוכל לתקשר עם מערוכת חיצוניות - שאינם תומכים עברית)
 

moishy

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

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
אין לזה שום קשר למערכות שאינן תומכות עברית.
SQL בהם יש שדות בעברית הוא כמעט בלתי ניתן לקריאה וכ"ש לעריכה. שמות שדות, תמיד, אך ורק באותיות לועזיות. בלי תירוצים וללא יוצא מן הכלל.
מרכין ראשי בפני גדולים ממני....
מהיום...
 

moishy

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

UU

משתמש סופר מקצוען
הנדסת תוכנה
בכל מקרה - לשם לימוד אפשר לכתוב עברית באותיות באנגלית
ככה עשינו כל שנות הלימודים
לדוגמא: hatava
זה נוח יותר למי שהאנגלית לא שפת אם
אבל שימוש בעברית בתוך הקוד = קטסטרופה...
 

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
בכל מקרה - לשם לימוד אפשר לכתוב עברית באותיות באנגלית
ככה עשינו כל שנות הלימודים
לדוגמא: hatava
זה נוח יותר למי שהאנגלית לא שפת אם
אבל שימוש בעברית בתוך הקוד = קטסטרופה...
שומע ומקבל!

יש לי רק בעיה קטנה בקוד שהבאתי קודם:
ההגדרה השדות מתאים לבן ומתאים לבת קיימות בכל הטבה כאשר השדה הוא בוליאני
בקרטריון לשדה מתאים לבן כתבתי שאם השדה מין בשאילתת "המרת תאריך" הוא "ז"
ולהיפך בשדה מתאים לבת
ואני רואה שכששתי השדות מלאים (כלומר שזה מתאים לשניהם) הוא לא מביא לי, מה צריך להוסיף?

תודה
 

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
כל עוד אתה משתמש עם העורך הויזואלי שמות שדות בעברית זה יותר נח למי שלא מרגיש בנח עם אנגלית, אבל ברגע שתתחיל להשתמש בתצוגת SQL, גם אתה תסכים לזה.
דוקא כתבתי בSQL
פשוט כמעט התרגלתי כבר להפוך את הסוגריים
באמת במקרה של שינויים זה אכן כמעט לא אפשרי ללא מחיקה כללית של משפט שלם או קטע ממנו
 

UU

משתמש סופר מקצוען
הנדסת תוכנה
לדעתי OR במקום AND בין 2 האפשרויות (ולשים לב להוסיף סוגריים נכונים)
אבל קשה לי להבין את השאילתה עד הסוף כשהיא בעברית
בפרט שאני לא מכירה את הסינטקס של 2 פעמים שווה בתוך תנאי אחד
 

ראש לשועלים

מהמשתמשים המובילים!
אין לזה שום קשר למערכות שאינן תומכות עברית.
SQL בהם יש שדות בעברית הוא כמעט בלתי ניתן לקריאה וכ"ש לעריכה. שמות שדות, תמיד, אך ורק באותיות לועזיות. בלי תירוצים וללא יוצא מן הכלל.
בינתיים, עד שתחזור בתשובה שלימה, החלף למצער את כל הרווחים בקו_תחתון ,
יסכים אתי וודאי גם ר' מוישי שבינתיים זה הרע במיעוטו.
 

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
בינתיים, עד שתחזור בתשובה שלימה, החלף למצער את כל הרווחים בקו_תחתון ,
יסכים אתי וודאי גם ר' מוישי שבינתיים זה הרע במיעוטו.
בבקשה:
קוד:
INSERT INTO [הטבות ללקוחות] ( [מזהה_לקוח], [מזהה_הטבה] )
SELECT [נתוני אב].[מס' זהות], הטבות.[מזהה_הטבה]
FROM הטבות, [נתוני_אב] INNER JOIN [המרת_תאריך] ON [נתוני_אב].מזהה = [המרת_תאריך].מזהה
WHERE ((([נתוני_אב].שולם)=True) And ((הטבות.[טווח_גילאים_ראש])<=[המרת_תאריך].גיל) And ((הטבות.[טווח_גילאים_סף])>=[המרת_תאריך].גיל) And (([המרת_תאריך].[תאריך_לידה_עברי]) Like "*" & [הקלד חודש] & "*") And (הטבות.[מתאים_לבן]=([המרת_תאריך].מין="ז")) And (הטבות.[מתאים_לבת]=([המרת_תאריך].מין="נ")));

ובכל זאת אשמח אם משהו יוכל לענות לי על השאלה בקשר לשתי הקרטריונים האחרונים
כי במצב הנתון לפי הקרטריונים הכתובים ברג ששני השדות (מתאים לבן ומתאים לבת) מסומנים הוא לא מביא כלום
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קכו

א שִׁיר הַמַּעֲלוֹת בְּשׁוּב יי אֶת שִׁיבַת צִיּוֹן הָיִינוּ כְּחֹלְמִים:ב אָז יִמָּלֵא שְׂחוֹק פִּינוּ וּלְשׁוֹנֵנוּ רִנָּה אָז יֹאמְרוּ בַגּוֹיִם הִגְדִּיל יי לַעֲשׂוֹת עִם אֵלֶּה:ג הִגְדִּיל יי לַעֲשׂוֹת עִמָּנוּ הָיִינוּ שְׂמֵחִים:ד שׁוּבָה יי אֶת (שבותנו) שְׁבִיתֵנוּ כַּאֲפִיקִים בַּנֶּגֶב:ה הַזֹּרְעִים בְּדִמְעָה בְּרִנָּה יִקְצֹרוּ:ו הָלוֹךְ יֵלֵךְ וּבָכֹה נֹשֵׂא מֶשֶׁךְ הַזָּרַע בֹּא יָבוֹא בְרִנָּה נֹשֵׂא אֲלֻמֹּתָיו:
נקרא  106  פעמים

אתגר AI

תאומים • אתגר 145

לוח מודעות

למעלה