توابع درون ساخته SQL
دستور Having :
از اين دستور برای افزودن شرط به توابع درون ساخته SQL استفاده می شود ، زيرا از دستور
Where نمی توان برای کار با مقادير خروجی توابع درون ساخته SQL استفاده کرد .
به عبارت ديگر Having برای اعمال شرط به ستون ها اعمال می شود و همان کاری را می کند
که Where در رکوردها انجام می دهد .با مثال های زير استفاده از دستور Having را بررسی
می کنيم :
نکته : دستور Having معمولا با Group By می آيد .
- توجه : از داده های جداول زير در مثال های اين صفحه
استفاده می کنيم :
|
41252214 |
Ahmad |
Rezaee |
Hard Ware |
Tehran |
18 |
|
10724113 |
Ehsan |
Amiri |
Soft Ware |
Karaj |
14 |
|
10254861 |
Zahra |
Hosini |
Hard Ware |
Tehran |
17 |
|
27365187 |
Sahar |
Ahmadi |
Soft Ware |
Bam |
16 |
|
35654415 |
Hesam |
Razavi |
Soft Ware |
Tehran |
19 |
|
1011 |
پايگاه داده |
3 |
عملی |
|
1012 |
مباحث ويژه |
3 |
عملی |
|
1013 |
زبان تخصصی |
2 |
نطری |
|
41252214 |
1011 |
2 |
85 - 86 |
16 |
|
10724113 |
1011 |
2 |
85 - 86 |
14 |
|
41252214 |
1012 |
1 |
85 - 86 |
17 |
|
10724113 |
1012 |
1 |
85 - 86 |
11 |
|
10254861 |
1013 |
2 |
85 - 86 |
13 |
|
10254861 |
1011 |
2 |
84 - 85 |
8 |
|
27365187 |
1012 |
1 |
84 - 85 |
19 |
|
27365187 |
1013 |
1 |
84 - 85 |
16 |
|
35654415 |
1011 |
2 |
84 - 85 |
9 |
|
35654415 |
1013 |
2 |
84 - 85 |
17 |
مثال : از جدول Students , Selection مجموع نمرات و نام
و نام خانواگی دانشجويانی که مجموع نمرات آنها بيش از 25 است را نمايش دهيد
:
Select Name , Family , Sum ( Selection.Grade ) As
مجموع نمرات
From Students , Selection
Where Students.Student ID = Selection.Student ID
Group By Name , Family
Having Sum ( Selection.Grade ) > 25
Order By Family;
|
|
Sahar
|
Ahmadi
|
35
|
|
Ahmad
|
Rezaee
|
33
|
|
مثال : از جدول Selection و Courses نام دروسی را ارائه
دهيد که 4 بار توسط دانشجويان انتخاب شده باشد :
Select CoTitle , Count ( Selection.Course ID ) As
تعداد انتخاب
From Selection , Courses
Where Selection.Course ID = Courses.Course ID
Group By CoTitle
Having Count ( Selection.Grade ) = 4 ;
|
|
|