1.3.9. GROUP BY – פעולה על קבוצות של רשומות

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

כדי לעשות זאת, עלינו לעשות שני דברים: 1. עלינו לבחור, בנוסף לסכום המכירות, גם את שם החנות. כמו כן נרצה לדאוג לכך שהפונקציה SUM בכל פעם תפעל רק על קבוצת השורות בהן יש את אותו שם חנות. כדי לעשות זאת אנחנו משתמשים ב-GROUP BY.

GROUP BY מאפשרת לנו להפעיל את הפונקציות של שפת SQL על קבוצות של רשומות.

תחביר לדוגמא:

SELECT column_name1, SUM(column_name2) FROM table_name

GROUP BY column_name1

לדוגמא, עבור טבלת המכירות שראינו קודם:

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

נפעיל את השאילתה הבאה:

SELECT store_name, SUM(Sales) FROM Store_Information GROUP BY store_name

ונקבל את טבלת התוצאה הבאה:

store_name

SUM(Sales)

Los Angeles

$1800

San Diego

$250

Boston

$700

כלל: כאשר אנחנו משתמשים ב-GROUP BY, בנוסף לפעולות סטטיסטיות (הפונקציות השונות), מותר לשלוף רק שדות לפיהם מתבצע הקיבוץ (וביטויים שמערבים אותם).

מאת: רוזית

שם

מאת: אני

לא מצליחה

איך משתמשיםפ במקס ומינ
מאת: לימור

1.3.1.3. שליפת נתונים ממספר טבלאות

היי
הפקודה הזו לא עובדת... מה לא בסדר?
מאת: חיים

לפעמים שורף לי בתחת, מה עושים?

מאת: דני

אני רואה שזה פורסם ב-2005

האם זה רלוונטי להיום?
מאת: AA

תודה

הורדתי ועברתי על על הכל.עזר לי מאוד תודה רבה
מאת: Adi

subqueries

In the 2nd example for WHERE subqeiry, can I use the word AND in the condition,
If so, how?

thank you
מאת: Adi

UPDATE

Is the word TABLE in the UPDATE statement necessary
if so, why is it necessary in the #2nd example and not in the 1st
Can I use
UPDATE table_name SET col1=val1, col2=val2, ... WHERE condition

Thank you
מאת: נטע מאיירס

CREATE TABLE

לא צריך להגדיר איפהשהו מפתח ראשי ומפתח זר? איך אחרת יוצרים קשרים בין הטבלאות? שם עמודה זהה זה מספיק ליצירת קשר?

תודה רבה!
מאת: שמואל בר

Where

בטבלה מס 1 יש לי שדה עם פקד של תיבה משולבת.
אני רוצה להציב בקרטריון של התיבה המשולבת תנאי :- שיבחרו בטבלה אחרת מס 2 רק הרשומות ששדה מסויים שלהם שווה לערך של שדה בטבלה 1 הנמצא באותה רשומה של הפקד. האם אפשר להציב בתנאי הקריטריון (בפקודת WHERE ) לא רק השוואה לרשימה של נתונים קבועים מראש, אלא גם השוואה למשתנה שנגזר Nרשומה ושדה מסויימים. איך כותבים את זה ב- SQL ?
מאת: מאיר

יצירת שאילתת SQL מתוך טופס

לכ' ניר אדר שלום !
אני רצה ליצור שאילתת SQL מתוך טופס באכסס בארוע בעת לחיצה של פקד ואני לא מצליח להבין את כללי התחביר.
למשל השאילתה הזו שכתבו לי אותה ובמקום להעברי נתונים לטבלה fordoh אני רוצה פשוט לבנות שאילתה רגילה ושתהא בסיס לדוחות שלי אז במקום Select *INTO fordoh ליצור שאילתה חדשה שמקבלת את הפרמטרים מהטופס

Dim WhereCond As String
WhereCond = " Where 1=1 "

Dim myqry As QueryDef
Set myqry = CurrentDb.QueryDefs("creattableforreports")
myqry.sql = "Select *INTO fordoh from Forcreatreport " & WhereCond
DoCmd.SetWarnings False
DoCmd.OpenQuery "creattableforreports", , acReadOnly
תודה לעוזרים מאת : מאיר
mc12@netvision.net.il
מאת: מאיר

כללי התחביר של כתיבת השאילה בתוך פקד בטופס

בבקשה ,בבקשה מכם תעזרו לי אני כל הזמן מסתבך ובעצם אף פעם אני לא מצליח לכתוב שגרה שמכילה שאילתת SQL , אני הולך לשאילתה לעיצוב שאילתה קיימת בתצוגת SQL ,מעתיק את התוכן ללוח
הולך לטופס ומדביק את התוכן לתוך אירוע בעת לחיצה ואז אני מקבל את כל השורות שהדבקתי ל אדום ,אני לא מצליח להבין את כללי התחביר של כתיבת שאילתת SQL . התוכלו לעזור לי ?
מאיר = mc12@netvision.net.il
אלף תודות לכם
מאת: tamar

innerjoin

אין כאן באמת הסבר
מאת: בני

תודה על הכל ,פשוט אין מילים ...הכל מובן וכתוב בצורה יפה .. :)

תודה על המידע אני מבין יותר בזכות האתר ..
כל הכבוד ליוצר האתר :)
מאת: חדשה

תודה

אין מילים הכל ברור ומסביר ברמה
מאת: דניאל

זה רק סיכום =.=

אני מחפש מדריך שילמד את השפה .. לא שיסביר אליה.
מאת: shoshan

תודה רבה - שמחים לעזור לכולם ללמוד SQL

:)
מאת: יניב

הסברים מצוינים

התוכן מעולה וההסברים טובים
מאת: מרוצה

ניר אדר- ממש ממש תודה !

אני כרגע לומד SQL, ונעזרתי המון בהסברים המצוינים הלאו
רציתי להגיד תודה ושאתה עושה עבודת קודש
שיתוף:
| עוד