**کد شما باید روی نسخهی استاندارد MySQL قابل اجرا باشد**،
برای چک کردن سینتکس کد SQL خود میتوانید از **[این وبسایت](https://www.eversql.com/sql-syntax-check-validator/)** کمک بگیرید.
---
بخشی از پایگاه دادهی سامانهی حسابداری یک شرکت بازرگانی به شما دادهشده است.
این پایگاه داده در حال حاضر شامل ۸ جدول است. این جدولها عبارتند از:
**مشتریها**، **دستهبندیهای محصولات**، **کارمندان**، **سفارشات**، **جزئیات سفارشات**، **محصولات**، **تهیه کنندهها** و **ارسال کنندهها**.
---
هر مشتری دارای نام، نام رابط، آدرس، شهر، کد پستی و کشور است.
در اینجا شمای جدول `Customers` را آوردهایم:
|اسم ستون|نوع|تعریف|ملاحضات|
|:-:|:-:|:-:|:-:|
|`CustomerID`|`int`|شناسهی مشتری|`primary key`|
|`CustomerName`|`varchar`|نام مشتری||
|`ContactName`|`varchar`|نام رابط||
|`Address`|`varchar`|آدرس||
|`City`|`varchar`|شهر||
|`PostalCode`|`varchar`|کد پستی||
|`Country`|`varchar`|کشور||
هر دستهبندی دارای نام دسته و توضیحات آن است.
در اینجا شمای جدول `Categories` را آوردهایم:
|اسم ستون|نوع|تعریف|ملاحضات|
|:-:|:-:|:-:|:-:|
|`CategoryID`|`int`|شناسهی دسته|`primary key`|
|`CategoryName`|`varchar`|نام دسته||
|`Description`|`varchar`|توضیحات||
هر کارمند دارای نام، نام خانوادگی، تاریخ تولد، تصویر پرسنلی و توضیحات است.
در اینجا شمای جدول `Employees` را آوردهایم:
|اسم ستون|نوع|تعریف|ملاحضات|
|:-:|:-:|:-:|:-:|
|`EmployeeID`|`int`|شناسهی کارمند|`primary key`|
|`LastName`|`varchar`|نام خانوادگی||
|`FirstName`|`varchar`|نام||
|`BirthDate`|`date`|تاریخ تولد با قالب `YYYYMMDD`||
|`Photo`|`varchar`|عکس پرسنلی||
|`Notes`|`text`|توضیحات||
هر ارسالکننده دارای نام و تلفن است.
در اینجا شمای جدول `Shippers` را آوردهایم:
|اسم ستون|نوع|تعریف|ملاحضات|
|:-:|:-:|:-:|:-:|
|`ShipperID`|`int`|شناسهی ارسال کننده|`primary key`|
|`ShipperName`|`varchar`|نام ارسال کننده||
|`Phone`|`varchar`|تلفن||
هر سفارش دارای یک مشتری، یک کارمند ثبت کنندهی سفارش، یک ارسال کننده و تاریخ ثبت سفارش است.
در اینجا شمای جدول `Orders` را آوردهایم:
|اسم ستون|نوع|تعریف|ملاحضات|
|:-:|:-:|:-:|:-:|
|`OrderID`|`int`|شناسهی سفارش|`primary key`|
|`CustomerID`|`int`|شناسهی مشتری|`foreign key (Customers)`|
|`EmployeeID`|`int`|شناسهی کارمند|`foreign key (Employees)`|
|`OrderDate`|`date`|تاریخ ثبت سفارش با قالب `YYYYMMDD`||
|`ShipperID`|`int`|شناسهی ارسال کننده|`foreign key (Shippers)`|
جدول جزئیات سفارش مشخص میکند هر سفارش دارای چه محصولاتی است. هر جزء سفارش دارای یک سفارش، یک محصول و تعداد آن محصول در سفارش است.
در اینجا شمای جدول `OrderDetails` را آوردهایم:
|اسم ستون|نوع|تعریف|ملاحضات|
|:-:|:-:|:-:|:-:|
|`OrderDetailID`|`int`|شناسهی جزء سفارش|`primary key`|
|`OrderID`|`int`|شناسهی سفارش|`foerign key (Orders)`|
|`ProductID`|`int`|شناسهی محصول|`foreign key (Products)`|
|`Quantity`|`int`|تعداد||
هر محصول دارای نام، تهیهکننده، دستهبندی، واحد و قیمت به ازای هر واحد است.
در اینجا شمای جدول `Products` را آوردهایم:
|اسم ستون|نوع|تعریف|ملاحضات|
|:-:|:-:|:-:|:-:|
|`ProductID`|`int`|شناسهی محصول|`primary key`|
|`ProductName`|`varchar`|نام محصول||
|`SupplierID`|`int`|شناسهی تهیهکننده|`foreign key (Suppliers)`|
|`CategoryID`|`int`|شناسهی دستهبندی|`foreign key (Categories)`|
|`Unit`|`varchar`|واحد||
|`Price`|`double`|قیمت واحد||
هر تهیهکننده دارای نام، نام رابط، آدرس، شهر، کد پستی، کشور و شماره تلفن است.
در اینجا شمای جدول `Suppliers` را آوردهایم:
|اسم ستون|نوع|تعریف|ملاحضات|
|:-:|:-:|:-:|:-:|
|`SupplierID`|`int`|شناسهی تهیهکننده|`primary key`|
|`SupplierName`|`varchar`|نام تهیهکننده||
|`ContactName`|`varchar`|نام رابط||
|`Address`|`varchar`|آدرس||
|`City`|`varchar`|شهر||
|`PostalCode`|`varchar`|کد پستی||
|`Country`|`varchar`|کشور||
|`Phone`|`varchar`|تلفن||
---
## مطلوبات
کوئریهای *SQL* خواستهشده از شما موارد زیر است: (توجه کنید که هر کوئری نمرهای جداگانه دارد و اگر کوئری یک قسمت را نتوانستید بزنید، کوئریهایی که حل کردید را بفرستید و قسمت آن کوئری را خالی بگذارید.)
#### بخش ۱
تمام اطلاعات جدول `Customers` را از تمام مشتریانی که نامشان با حرف `A` شروع میشود، به ترتیب صعودی بر اساس نام مشتری گزارش کنید.
#### بخش ۲
اطلاعات مشتریان تمام کشورهایی را که کمتر از ۵ مشتری متمایز دارند، از جدول `Customers` پاک کنید.
#### بخش ۳
نام تمام مشتریهایی که حداقل یکی از ۵ ارزانترین کالای موجود را سفارش دادهاند را به ترتیب صعودی الفبایی در قالب ستون `CustomerName` گزارش کنید.
#### بخش ۴
۱۰ عدد متمایز از بیشترین تعداد واحد فروش محصولات در یک بازهی یک ماهه (شروع از روز اول ماه و پایان در روز آخر ماه) را مشخص کنید. ۱۰ عدد متمایز به ترتیب نزولی مرتب شده را در قالب ستون `Sales` گزارش کنید.
برای فهم بیشتر، توجه کنید که هر نوع کالا در هر ماه تعدادی فروش داشته است. شما بایستی تعداد واحدهای فروش کالاهای مختلف در یک ماه را به صورت نزولی مرتب کنید و ۱۰ تای اول متمایز را گزارش کنید.
---
## روش پیادهسازی
کد خود را در قالب زیر، در یک فایل با نام `code.sql` قرار دهید و آن را ارسال کنید.
```
-- Section1
your first query here
-- Section2
your second query here
-- Section3
your third query here
-- Section4
your fourth query here
```