ABA


"שאלה בפונקציית MAX ב SQL"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10116 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10116
MrSus
חבר מתאריך 8.5.09
1801 הודעות
   19:19   22.10.10   
אל הפורום  
  שאלה בפונקציית MAX ב SQL  
 
   יש לי בסיס נתונים שבו טבלה עם 2 עמודות: תאריך, כמות.

אני רוצה לכתוב שאילתה שתציג לי את הכמות המקסימלית ותציג גם באיזה תאריך הייתה הכמות המקסימלית.
לצורך העניין, שמות העמודות הם: date,amount ושם הטבלה הוא table.

ניסיתי לכתוב את השאילתה כך:

SELECT max(amount), date FROM table

אך כמובן זה לא מאפשר להריץ שאילתה מהסוג הזה, ועליי להכניס גם GROUP BY, וכאשר אני מכניס GROUP BY date זה פשוט מחזיר לי את הטבלה כפי שהיא במקור.

איך ניתן לעשות את זה?

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

תודה רבה!


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  MAX זו פונקציה אגרגטיבית Net_Boy  23.10.10 19:34 1
     כן, אבל אני לא רוצה שזה יסדר לי, אני רוצה שיציג MrSus 23.10.10 20:57 3
         זה יחזיר כמה תוצאות אם יש כמה MAX AMOUNTS... Ice Cold  24.10.10 00:23 5
             אני מניח ש DISTINCT אמור לסדר את זה Net_Boy  24.10.10 00:27 6
  תעשה שאילתה בתוך שאילתה.. SUB QUERY ronen333  23.10.10 20:19 2
     תודה, בהחלט מה שעשיתי, ראה תגובה מעלה. MrSus 23.10.10 20:59 4

       
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   19:34   23.10.10   
אל הפורום  
  1. MAX זו פונקציה אגרגטיבית  
בתגובה להודעה מספר 0
 
   כלומר, היא עוברת על כל הרשומות ומוציאה לך את הנתון שאתה מחפש ולא שומרת מידע על רשומת מסוימת.

מה שאתה צריך בפשטות זה ORDER BY amount ה DEFAULT זה מהקטן לגדול
אם אתה רוצה הפוך אתה רושם DESC אחרי הרשומה כלומר:
ORDER BY amount DESC


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MrSus
חבר מתאריך 8.5.09
1801 הודעות
   20:57   23.10.10   
אל הפורום  
  3. כן, אבל אני לא רוצה שזה יסדר לי, אני רוצה שיציג  
בתגובה להודעה מספר 1
 
   אני רוצה שיציג רק את הרשומה המקסימלית ושיגיד באיזה תאריך.
בכל אופן, אני הבנתי כבר שאני צריך לעשות שאילתה בתוך שאילתה והסתדרתי.

תודה רבה!

אגב, הפתרון הוא לכתוב את השאילתה בצורה הבאה:



SELECT amount,date FROM table WHERE amount
(SELECT MAX(Amount) FROM table) =

פתרון פשוט יחסית.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   00:23   24.10.10   
אל הפורום  
  5. זה יחזיר כמה תוצאות אם יש כמה MAX AMOUNTS...  
בתגובה להודעה מספר 3
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   00:27   24.10.10   
אל הפורום  
  6. אני מניח ש DISTINCT אמור לסדר את זה  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   20:19   23.10.10   
אל הפורום  
  2. תעשה שאילתה בתוך שאילתה.. SUB QUERY  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MrSus
חבר מתאריך 8.5.09
1801 הודעות
   20:59   23.10.10   
אל הפורום  
  4. תודה, בהחלט מה שעשיתי, ראה תגובה מעלה.  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net