أحدث البرامج التعليمية وتطوير الشبكة
 

SQL بصعوبات شرط


شرط بصعوبات

تم إضافة بند الحاجة إلى SQL لأن الكلمة حيث لا يمكن استخدامها مع دالات التجميع.

SQL بصعوبات في بناء الجملة

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value;

قاعدة بيانات تجريبي

في هذا البرنامج التعليمي سوف نستخدم قاعدة بيانات نموذج Northwind المعروفة.

فيما يلي مجموعة مختارة من "Orders" الجدول:

رقم التعريف الخاص بالطلب هوية الزبون هوية الموظف تاريخ الطلب ShipperID
10248 90 5 1996-07-04 3
10249 81 6 1996-07-05 1
10250 34 4 1996-07-08 2

ومجموعة من "Employees" الجدول:

هوية الموظف الكنية الاسم الاول تاريخ الميلاد صورة فوتوغرافية الملاحظات
1 Davolio Nancy 1968-12-08 EmpID1.pic Education includes a BA....
2 Fuller Andrew 1952-02-19 EmpID2.pic Andrew received his BTS....
3 Leverling Janet 1963-08-30 EmpID3.pic Janet has a BS degree....

SQL مثال بصعوبات

الآن نريد أن نجد إذا كان أي من الموظفين قد سجلت أكثر من 10 أوامر.

نحن نستخدم عبارة SQL التالية:

مثال

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders FROM (Orders
INNER JOIN Employees
ON Orders.EmployeeID=Employees.EmployeeID)
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 10;

انها محاولة لنفسك »

الآن نريد أن نجد إذا الموظفين "Davolio" أو "Fuller" تم تسجيل أكثر من 25 أوامر.

نضيف جملة WHERE عادية إلى بيان SQL:

مثال

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders
INNER JOIN Employees
ON Orders.EmployeeID=Employees.EmployeeID
WHERE LastName='Davolio' OR LastName='Fuller'
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 25;

انها محاولة لنفسك »