دستور Having :
از این دستور برای افزودن شرط به توابع درون ساخته SQL استفاده می شود ، زیرا از دستور Where نمی توان برای کار با مقادیر خروجی توابع درون ساخته SQL استفاده کرد .
به عبارت دیگر Having برای اعمال شرط به ستون ها اعمال می شود و همان کاری را می کند که Where در رکوردها انجام می دهد .با مثال های زیر استفاده از دستور Having را بررسی می کنیم :
نکته : دستور Having معمولا با Group By می آید .
– توجه : از داده های جداول زیر در مثال های این صفحه استفاده می کنیم :
| Student Table | |||||
| Student ID | Name | Family | Major | City | Grade |
| ۴۱۲۵۲۲۱۴ | Ahmad | Rezaee | Hard Ware | Tehran | ۱۸ |
| ۱۰۷۲۴۱۱۳ | Ehsan | Amiri | Soft Ware | Karaj | ۱۴ |
| ۱۰۲۵۴۸۶۱ | Zahra | Hosini | Hard Ware | Tehran | ۱۷ |
| ۲۷۳۶۵۱۸۷ | Sahar | Ahmadi | Soft Ware | Bam | ۱۶ |
| ۳۵۶۵۴۴۱۵ | Hesam | Razavi | Soft Ware | Tehran | ۱۹ |
| Courses Table | |||
| Course ID | Co Title | Credit | Co Type |
| ۱۰۱۱ | پایگاه داده | ۳ | عملی |
| ۱۰۱۲ | مباحث ویژه | ۳ | عملی |
| ۱۰۱۳ | زبان تخصصی | ۲ | نطری |
| Selection Table | ||||
| Student ID | Course ID | Term | Year | Grade |
| ۴۱۲۵۲۲۱۴ | ۱۰۱۱ | ۲ | ۸۵ – ۸۶ | ۱۶ |
| ۱۰۷۲۴۱۱۳ | ۱۰۱۱ | ۲ | ۸۵ – ۸۶ | ۱۴ |
| ۴۱۲۵۲۲۱۴ | ۱۰۱۲ | ۱ | ۸۵ – ۸۶ | ۱۷ |
| ۱۰۷۲۴۱۱۳ | ۱۰۱۲ | ۱ | ۸۵ – ۸۶ | ۱۱ |
| ۱۰۲۵۴۸۶۱ | ۱۰۱۳ | ۲ | ۸۵ – ۸۶ | ۱۳ |
| ۱۰۲۵۴۸۶۱ | ۱۰۱۱ | ۲ | ۸۴ – ۸۵ | ۸ |
| ۲۷۳۶۵۱۸۷ | ۱۰۱۲ | ۱ | ۸۴ – ۸۵ | ۱۹ |
| ۲۷۳۶۵۱۸۷ | ۱۰۱۳ | ۱ | ۸۴ – ۸۵ | ۱۶ |
| ۳۵۶۵۴۴۱۵ | ۱۰۱۱ | ۲ | ۸۴ – ۸۵ | ۹ |
| ۳۵۶۵۴۴۱۵ | ۱۰۱۳ | ۲ | ۸۴ – ۸۵ | ۱۷ |
مثال : از جدول Students , Selection مجموع نمرات و نام و نام خانواگی دانشجویانی که مجموع نمرات آنها بیش از ۲۵ است را نمایش دهید :
| مثال | ||||||||||
| 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; |
کد | |||||||||
|
خروجی | |||||||||
مثال : از جدول Selection و Courses نام دروسی را ارائه دهید که ۴ بار توسط دانشجویان انتخاب شده باشد :
| مثال | |||||
| 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 ; |
کد | ||||
|
خروجی | ||||
