دستور 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 ; |
کد | ||||
|
خروجی |