שימוש בפונקציות SQL

adi ajz

New member
שימוש בפונקציות SQL

היי כולם,

שאלה לי, האם כאשר אני משתמשת בפונקצייה של SQL (במקרה שלי בפונקציית מינימום) אפשר להוציא את כל הנתונים הקשורים אליה?

כלומר יש לי מאגר נתונים של מוצרים, ואני רוצה לבדוק מהו המוצר עם המחיר המינימלי.
בהתחלה השאילה שלי הייתה: select min(price), P_name from products.
זה שלף לי את המחיר הכי נמוך, אבל שם המוצר לא תאם (לדעתי הוא שלף את המוצר הראשון שהכנסתי.

לפי מה שהבנתי יש לי טעות, ניסיתי לעבוד עם where price = min(price) וזה לא עובד וגם עם having...

תוכלו לעזור לי בבקשה?

המון תודה!
 

pitoach

New member
כאשר אתה עובד עם פונקציית אגריגציה עלייך לספק

הפרמטר לפיו האגריגציה מבוצעת

טוב זה בטח היה סינית


כאשר אתה מבצע פעולה כמו MIN נשאלת השאלה לפי מה אתה רוצה לבצע את הבדיקה. אם אתה לא רוצה את הערך הכי קטן בכל הטבלה? האם אתה רוצה את הערך הכי קטן בכל קבוצה של נתונים וכן הלאה.

אם יש לך יותר מערך אחד של P_name אז השאילתה שהצגת כאן ככל הנראה לא החזירה לך כלום פרט להודעת שגיאה בסגנון:
is not contained in either an aggregate function or the GROUP BY clause.

אם תצרף לנו DDL+DML נוכל להבין כיצד הטבלה שלך נראית ולספק פתרון או כיוון לפתרון. בינתיים תוכל ללמוד יותר על שימוש בפונקציות אגריגציה כאן:
http://www.w3schools.com/sql/sql_func_min.asp
 

eyalgorithm

New member
שאילתת אגרגציה

תשובה קצרה: לא באותה השאילתה, אלא רק בשילוב עם שאילתה נוספת.

במקרה שלך - בשביל לקבל את כל הפרטים של המוצר (או מוצרים, במקרה של מחיר זהה) בעל המחיר המינימלי מתוך כלל המוצרים, נסי את השאילתה הבאה:
select * from products
where price in
(select min(price) from products)
 
למעלה