שאלונת ב-SQL

מיקי256

New member
שאלונת ב-SQL

יש לי טבלת באקסס שמציינת עסקאות, ובנויה בצורה הבאה: ID, SELLER_ID, AMOUNT כל רשומה מציינת עסקה אחת, ובה רשום מי מכר אותה, וכמה הוא מכר. אני צריך לכתוב שאילתא ששולפת את המוכר שמכר הכי הרבה, ולא ממש מסתדר עם זה. תודה מראש לעונים.
 

שלמה47

New member
פונקצית max

SELCT SELLER_ID, Max(AMOUNT) FROM YOURTABLE ני מניח שיש לך גם טבלה עם שמות המוכרים ולא רק עם הID שלהם כך שיתכן שתצטרך גם לכלול INNER JOIN במשפט הSQL שלך
 

רץ ברשת

New member
לא יעבוד

השאילתא שלך מציגה לכל מוכר, את העסקה המקסימלית שלו, (וכדי שזה יעבוד, צריך גם להוסיף group by seller_id)
 

רץ ברשת

New member
תגובה :

select seller_id from yourtable where amount = (select max(amount) from yourtable)​
יש לשים לב שבמידה ויש מספר מוכרים עם מספר זהה (מקסימלי), כולם יוחזרו.
 

s h i m s h o n

New member
עניין של השקפה

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

מיקי256

New member
הכוונה היא למוכר שמכר הכי הרבה

לא לזה שביצע את העסקה הגדולה ביותר. ותודה לכל העונים עד כה.
 

s h i m s h o n

New member
נסיון

אני לא בטוח מה אקסל יאכל ומה לא, אבל אפשר לנסות:
select seller_id, sum(amount) from tbl group by seller_id having sum(amount) = (select max(amt) from (select sum(amount) amt group by seller_id))​
או בעזרת TOP:
select top 1 seller_id, sum(amount) from tbl group by seller_id order by 2 desc​
בברכה, ש.
 
למעלה