› פורומים › אפיון ופיתוח פריוריטי › חישוב מינימום מכמה עמודות
- This topic has 10 תגובות, 3 משתתפים, and was last updated לפני 4 שנים, 9 חודשים by sava.
- Post
- Replies
-
- פברואר 4, 2020 בשעה 7:53 pm
- פברואר 5, 2020 בשעה 8:44 am
תודהזה מה שעשיתי אבל קצת הסתבכתי כי אני צריכה את המינימום מ-4 ערכים ששונים מ-0 או גדולים מ-0
יש לך רעיון איך אני יכולה לרשום את זה
תודה מראש
- פברואר 5, 2020 בשעה 9:17 am
זה קצת מאתגר במיוחד בתוך שאילתא. בקוד יותר קל.אני בד"כ פותר ע"י החלפת ערך שלא מעניין בערך שגבוה מערכים אחרים אבל נדרש לדעת מה זה.
תלוי במה שאת עושה יכול להיות שיותר פשוט לשלוף את הערכים לשורות שונות בטבלת לינק (STACK כלשהו) ואז להריץ על זה שאילתא עם MIN. קשה להציע מרחוק פתרון שטוב לכל דבר.
אבל באמת כאן יש מקרה שהרבה יותר קשה להתמודד איתו רק בגלל שאין בפריוריטי מושג של ערך NULL.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- פברואר 5, 2020 בשעה 9:22 am
אבל כל זה לגבי פתרון אלגנטיאת משוואה רק 4 ערכים ואפשר להתסדר עם ביטויים של
( : ? )
רק צריכים לחזור על הרבה ביטויים, כי את רוצה משהו מעין אם ב קטן מ-א וגם לא פסול אז ב אחרת א, ואם ג קטן מהנ"ל ולא פסול אז ג אחרת הנ"ל ושוב עבור ד'
(כמובן גם לפסול את א אם צריך)
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- פברואר 5, 2020 בשעה 9:54 am
אני רוצה לעדכן טבלה עם כל מחירי הלקוח לפי פריטבגלל שאני כבר רצה על כל לקוח בנפרד אז אני לא רוצה להוסיף עוד cursor שירוץ על כל המקטים כפול כמות הלקוחות כי זה יקח הרבה מאוד זמן
לכן אני מנסה להכניס את כל הנתונים בבת אחת
אם אקח את הדוג' שלך אז אני אצטרך להניח שאחד הפרמטרים תמיד שונה מ-0 כדי שיהי לי מ לרשום אם כולם אפסים, נכון? אם כך, אניח שתמיד יש מחיר בסיס…
<p dir="ltr">MINOP(MINOP(MINOP(1,(2 <> 0 ? 2 : (3 <> 0 ? 3 : (4 <> 0 ? 4 : 1)))),(3 <> 0 ? 3 : (4 <> 0 ? 4 : 1))),(4 <> 0 ? 4 : 1))</p>
תודה- פברואר 6, 2020 בשעה 9:49 am
כן, נראה טוב, אבל לא עברתי על הכלהכי טוב פשוט להכין ולבדוק על מקרה קצה שעובד נכון, זה מה שהייתי עושה
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- פברואר 6, 2020 בשעה 11:37 am
כתבת "אני לא רוצה להוסיף עוד cursor שירוץ על כל המקטים". לא ברור לי מאין זה הגיע, אבל דווקא משפט. אם יש כמה ערכים בטבלה לגבי כל לקוח, ניתן לשלוף את הערך המזערי באמצעות פונקציית MIN
<p style="text-align: left;">SELECT MIN (SOMETHING) INTO :A</p>
<p style="text-align: left;">FROM TABLE</p>
<p style="text-align: left;">WHERE CUST = :CUST</p>
או משהו דומה- פברואר 6, 2020 בשעה 12:09 pm
תודה, הצלחתי עם minopנועם, אני צריכה מינימום של 4 ערכים שנמצאים ב-2 טבלאות. ערך אחד במסך פריט וערך שני במסך מבצעים שמקושר פעם אחת ללקוח, פעם שניה ללקוח מרכז ופעם שלישית ללקוח רשת (שדה דומה ללקוח מרכז שהוספתי)
לכן הייתי צריכה הכל בשאילתא אחת ולא לרוץ על כל פריט, להכניס אותו לפרמטר ואז להשוות כי זה אומר לרוץ על מאות לקוחות ועל כל לקוח לקוץ על אלפי מוצרים.
אבל תודה בכל זאת
- פברואר 6, 2020 בשעה 12:38 pm
תני לי להציע משהו אחר לגמרי: תכניסי את כל הערכים פעם אחת לתוך STACK8, לא באמצעות CURSOR. אחר כך תשלפי את הערך המזערי של כל פריט.LINK STACK8 TO $.STK;
ERRMSG 1 WHERE :RETVAL <= 0;
INSERT INTO STACK8 (KEY1, KEY2, REALDATA)
SELECT PART, 1, PRICE
FROM TABLE1
WHERE …;
INSERT INTO STACK8 (KEY1, KEY2, REALDATA)
SELECT PART, 2, PRICE
FROM TABLE2
WHERE …;
INSERT INTO STACK8 (KEY1, KEY2, REALDATA)
SELECT PART, 3, PRICE
FROM TABLE3
WHERE …;
INSERT INTO STACK8 (KEY1, KEY2, REALDATA)
SELECT PART, 3, PRICE
FROM TABLE4
WHERE …;SELECT MIN (REALDATA)
FROM STACK8
WHERE KEY1 = :PART
- יש להתחבר למערכת על מנת להגיב.