434
צפיות
צפיות
11
תשובות
תשובות
שלום שאלתי מורכבת אבל מאתגרת
אני בונה מסד נתונים של מכירת דברים ליד שניה
אני נותן לגולש לעלות כל מוצר שהוא חפץ ולמכור אותו כרצונו בכמה מטבעות
1 דולר
2 יורו
3 שקל
הבעיה שניתקלתי בה היא כזו:
אני מעוניין שהגולש יכול לסדר את המוצרים לפי סדר יורד במחיר
אבל בטבלה מוצגים 2 שדות המתיחסים למחיר
1 שדה המחיר
2 שדה סוג המטבע
וכשאני עושה שאילתה על שדה המחיר אני בעצם מסדר את המסד בסדר שגוי
כי 100$ הם 450 שקל נגיד
ו ו120 שקל הם 120 שקל
אבל במסד אחרי השאילתה מהקטן לגדול זה מסתדר
100$
120
וכו…
וזה לא נכון כי 120 שקל הם פחות מ100$
האם יש למשהו רעיון איך לעשות את זה בצורה טוב?????
מאוד חשוב כאן הדיוק של המטבעות כי הדולר והיורו משתנים כל הזמן
צודה לכול העוזרים
11 תשובות
מה שאני הייתי עושה זה דבר פשוט
הייתי שומר בשקלים (או בכל מטבע אחר) את כל המחירים, ומוסיף עמוד שמציינת איזה סוג מטבע המשתמש בחר. הסידור הופך להיות קל, ובהצגה אתה פשוט עושה כמה המרות.
שיטה מעניינת אבל מוטעת
אם האדם יכתוב בשקלים את הסכום אז הוא לא ישמור אף פעם את הערך של השקל לאומת הדולר או היורו
השיטה היא טובה ומצויינת ותפתור לי את בעיית הסדר אבל לא תפתור את בעיית אותו אדם שביקש לשמור על הערך של החפץ לאומת הדולר
כי אחרי הכל אנשים נותנים מחירים שכפופים לדולר כדי לשמור על ערך החפץ
כי 1000$ של היום הוא לא ה1000$ של עוד חצי שנה (הכל תלוי בכלכלת העולם)
תודה על הכוונת העזרה אבל לא את זה ביקשתי
יש למשהוא רעיון אחר??
אני הייתי יוצר שדה מכנה משותף
שבעצם לא יוצג למשתמש אלה רק לחישובים שלך.
כלומר יש את השדה סכום של כל פריט ופריט ולעומתו יש את השדה מכנה משותך שלצורך הדוגמא נגיד שהוא בשקלים.
את כל המטבעות אני אמיר לאותו מכנה משותף ואמיין לפיו את הטבלה.
לגבי עדכוני דולר וכל זה פעם בחצי שנה אתה מריץ BATCH שמעדכן את כל הטבלה על כל שדותיה לפי השער החדש וזה פותר לך את הבעיה.
וגם לפי מה ש אוריקס אמר..
הבן אדם לא מכניס בשקלים
הוא בוחר סוג מטבע ומכניס את הסכום.
אתה בפעולה INSERT שלך מבצע המרה לשקלים.
ואז בהצגה אתה פשוט מסתכל בשדה של איזה סוג מטבע המוצר הזה אמור להראות ומחזיר בחזרה לצורך הצגה.
זה יכול לחסוך ממך הרבה כי לדוגמא הדולר יעלה או ירד לא משנה אתה משנה את זה במקום אחד את הערך של הדולר והרי לפני הצגה הוא מחלק את השקלים בערך של הדולר. אז זה יתן לך את הערך הנכון בשקלים יחסית למשתנה שיחזיק לך את הערך של הדולר.
בעע בילבלתי את עצמי מקווה שהייתי ברור.
אני קרוב לפיתרון אבל מבקש עוד עזרה
תודה לכל מי שמנסה לפתור לי את הבעיה
אני מרגיש קרוב לפיתרון
הכנסתי את הביטוי הלוגי הזה לשאילתא אחרי ה
where
pay*((nametable.coin='2')*-4.5)+((nametable.coin='3')*-5.5)+((nametable.coin='1')*-1))<=pay1
pay – שדה מחיר
coin – שדה מטבע
coin=1 שקל
coin=2 $
coin=3 יורו
אם הביטויים הלוגים היו שולפים את הערך
-1
במקום
TRUE
זה היה עובד
אבל זה לא כך האם למשהו יש רעיון בכיוון ?
תודה לכל העוזרים
אני לא מבין למה אתה מנסה
לגרד באוזן עם הרגל.
הצענו לך פתרונות בהרבה יותר פשוטים.
לפחות תנמק את ההחלטה שלך.
אני אסביר את הבחור.
המערכת שלו היא מערכת לקניה ומחירת מוצרים יד שניה.
נגיד אני טל, ואני רוצה למכור גיטרה ישנה במחיר 100$ (דולר)…
שהיום שווים נגיד 430 שקל (נגיד)
אז אם עוד חודש אף אחד לא קנה את הגיטרה שלי והדולה עלה ל 4.5 אז היום הגיטרה שווה 100$ שזה היום ע"פ 1$ = 4.5 שקל, 100$ = 450 שקל.
ואם הוא יכניס את כל המחירים בשקלים… המחיר לא יהיה צמוד למטבע שהוא רוצה. (דולר יורו שקל).
מבין?
תודה JUST-TAL אני מקווה שעכשיו
מבינים אותי יותר טוב
באופן כללי מה שהציע BMAORLO זה פתרון טוב אבל לא מה שחיפשתי
כי צריך לעשות סריקה על הטבלה כל כמה זמן
למרות שאפשר לפתח את הרעיון שלו ליותר טוב על ידי שניצור שדה זמני ONLINE
שיתרגם את הסכומים לשקלים ויסדר אותם לפי הסדר
זהוא שדה שאין אותו בטבלה המקורית אלא הוא נוצר רק לזמן קצר כדי להפשר את הסדר הנכון
שאלתי היא איך עושים שדה זמני כזה מבחינת SQL?
אך מצאתי עוד דרך לוגית המוזכרת למעלה שאם היה ניתן במקום TRUE להביא
-1 זה היה עובד
אם למשהו יש פתרון גם לזה השמח לקבל
תודה לכל העוזרים
למה לא…
ליצור מערך ששם תסדר את מסםרי הID של המוצרים… ע"פ המחירים שלהם?
ואחרי שהם יהיו מסודרים תרוץ עליהם ותציג אותם?
אם זה כ"כ חשוב לך,
למה שלא תעשה המרה בזמן אמת ותסדר לפיה?
אתה יכול לשלוף את כל הטבלאה ל-getRows (לדוגמא), ולבצע סידור מחדש לפי
, ואז להציג ללקוח.או אולי בכלל לעשות מערכת שתשאב את שערי המטבעות (נגיד, אחת לשבוע) אוטומטית אליך לבסיס נתונים, ואז עם איזה SP טובה אחת לבצע המרה וסידור בזמן אמת. אבל זה רק אם זה SQL Server וחבריו, קשה לי להאמין שאקסס או MySQL יסתדרו עם זה טוב (סה"כ זה פעולה שוטפת שתתבצע המוון פעמים…)
הייתי שומר הכל בש"ח ואם הם היו רוצי
ם לדעת כמה זה עולה בדולר או יורו הם היו לוחצים על לינק ובלינק תהיה פרוצדורה שתחלק את המספר בכמה שצריך..
או שפשוט שאתה מציג תנתונים אם יש סימן של $ או של יורו אז תפעל בהתאם ע"י פרוצדורות של הפיכה לדולר או יורו