עזרה בתחביר SQL

Dana051823

New member
עזרה בתחביר SQL

1) להלן שאילתה בסיסית המחשבת עלות מוצר בהזמנה

SELECT Orders.OrderID, Orders.PriceToOne, Orders.Kamut, [PriceToOne]*[Kamut] as PriceToAll
FROM Orders;

איך אפשר לחשב באותה שאילתה סה"כ עלות של כל המוצרים להזמנה?
2) יש לי שאלתה שמסכמת כמה הזמנות עשה כל עובד
SELECT Count(Orders.OrderID), Orders.EmpID
FROM Orders
GROUP BY Orders.EmpID;


איך אפשר לציג רק עובדים שעשו הכי הרבה הזמנות?
==========================================

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

גרי רשף

New member
תשובות

1. יש לבצע Group By לפי מספר ההזמנה
ו-Sum על המכפלה של המחיר בכמות.
&nbsp
2. יש למיין לפי עמודת ה-Count מיון יורד
ולהציג רק את הראשון על ידי
top.
 

Dana051823

New member
שאילתה1 עובדת, שאילתה 2 עדיין לא קורקטית

תודה גרי עם השאילתה הראשונה זה עובד
אבל השאילתה השניה לא ממש - מה קורה עם יש אותה כמות מקסימלית של מכירות לכמה עובדים?
 

Dana051823

New member
נראה לי שפתרתי לא הכי אלגנטי אבל עובד

SELECT Count(Orders.OrderID) , Orders.EmpID
FROM Orders
GROUP BY Orders.EmpID
HAVING Count(Orders.OrderID)>=All (SELECT Count(Orders.OrderID)
FROM Orders
GROUP BY Orders.EmpID)
 

גרי רשף

New member
נסי Top 1 With Ties

זה אמור להחזיר את כל "הראשונים" (אם יש להם אותה כמות).
לא בטוח לגבי הסינטקס.
 

Dana051823

New member
האם Ties נתמכת באקסס

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