در طول مسابقه، می‌توانید سؤالات خود را از قسمت «سؤال بپرسید» مطرح کنید.

برای مشخص کردن رشته‌ها، از کاراکتر «'» استفاده کنید و نه «"».

شرکت فروش آنلاین


کد شما باید روی MySQL قابل اجرا باشد. برای چک کردن سینتکس کد SQL خود می‌توانید از این وبسایت کمک بگیرید.


در این سؤال، پایگاه داده‌ی یک شرکت فروش آنلاین که وظیفه‌ی فروش محصولات از برندهای مختلف را دارد، در اختیار شما قرار گرفته است.

جزئیات پروژه🔗

داده‌های سؤال را از این لینک دانلود کنید.

ساختار جداول به‌شرح زیر است:

جدول customers: از این جدول برای نگه‌داری اطلاعات مشتریان استفاده می‌شود. ساختار این جدول به‌صورت زیر است:

نام ستون نوع تعریف
customerNumber INT شناسه‌ی مشتری
customerName VARCHAR(50) نام مشتری
contactLastName VARCHAR(50) نام مخاطب
contactFirstName VARCHAR(50) فامیلی مخاطب
phone VARCHAR(50) شماره تلفن مشتری
addressLine1 VARCHAR(50) خط اول آدرس
addressLine2 VARCHAR(50) خط دوم آدرس
city VARCHAR(50) شهر
state VARCHAR(50) ایالت
postalCode VARCHAR(15) کد پستی
country VARCHAR(50) کشور
salesRepEmployeeNumber INT شماره کارمند فروش مربوطه
creditLimit DECIMAL(10,2) محدودیت بودجه

جدول employees: از این جدول برای نگه‌داری اطلاعات کارمندان استفاده می‌شود. ساختار این جدول به‌صورت زیر است:

نام ستون نوع تعریف
employeeNumber INT شناسه‌ی کارمند
lastName VARCHAR(50) فامیلی کارمند
firstName VARCHAR(50) نام کارمند
extension VARCHAR(10) اضافه
email VARCHAR(100) ایمیل
officeCode VARCHAR(10) کد دفتر
reportsTo INT گزارش میدهد به کارمند
jobTitle VARCHAR(50) شغل

جدول offices: از این جدول برای نگه‌داری اطلاعات دفترها استفاده می‌شود. ساختار این جدول به‌صورت زیر است:

نام ستون نوع تعریف
officeCode VARCHAR(10) کد دفتر
city VARCHAR(50) شهر
phone VARCHAR(50) تلفن
addressLine1 VARCHAR(50) خط اول آدرس
addressLine2 VARCHAR(50) خط دوم آدرس
state VARCHAR(50) ایالت
country VARCHAR(50) کشور
postalCode VARCHAR(15) کد پستی
territory VARCHAR(10) منطقه

جدول orderdetails: از این جدول برای نگه‌داری جزئیات سفارش‌ها استفاده می‌شود. ساختار این جدول به‌صورت زیر است:

نام ستون نوع تعریف
orderNumber INT شناسه‌ی سفارش
productCode VARCHAR(15) شناسه‌ی محصول
quantityOrdered int تعداد سفارش
priceEach DECIMAL(10,2) قیمت به ازای هر یک عدد محصول
orderLineNumber SMALLINT شناسه خط تولید

جدول orders: از این جدول برای نگه‌داری سفارش‌ها استفاده می‌شود. ساختار این جدول به‌صورت زیر است:

نام ستون نوع تعریف
orderNumber INT شناسه‌ی سفارش
orderDate DATE تاریخ سفارش
requiredDate DATE تاریخ نیاز
shippedDate DATE تاریخ ارسال
status VARCHAR(15) وضعیت ارسال
comments TEXT نظرات ارسال
customerNumber INT شناسه مشتری

جدول payments: از این جدول برای نگه‌داری جزئیات پرداخت‌ها استفاده می‌شود. ساختار این جدول به‌صورت زیر است:

نام ستون نوع تعریف
customerNumber INT شناسه‌ی مشتری
checkNumber VARCHAR(15) شماره چک
paymentDate DATE تاریخ پرداخت
amount DECIMAL(10,2) امقدار پرداخت

جدول productlines: از این جدول برای نگه‌داری خط تولید ها استفاده می‌شود. ساختار این جدول به‌صورت زیر است:

نام ستون نوع تعریف
productLine VARCHAR(15) شناسه‌ی خط تولید
textDescription VARCHAR(4000) توضیحات
htmlDescription MEDIUMTEXT لینک توضیحات
image MEDIUMBLOB عکس

جدول products: از این جدول برای نگه‌داری اطلاعات محصولات استفاده می‌شود. ساختار این جدول به‌صورت زیر است:

نام ستون نوع تعریف
productCode VARCHAR(15) شناسه‌ی محصول
productName VARCHAR(70) نام محصول
productLine VARCHAR(50) شناسه خط تولید
productScale VARCHAR(10) اسکیل محصول
productVendor VARCHAR(50) برند محصول
productDescription TEXT توضیحات محصول
quantityInStock SMALLINT تعداد موجود
buyPrice DECIMAL(10,2) قیمت خرید
MSRP DECIMAL(10,2) قیمت فروش

مطلوبات🔗

کوئری‌های زیر را طوری بنویسید که خروجی خواسته‌شده به‌دست بیاید:

  1. لیست کارمندان با بیشترین مشتری: شناسه کارمندان را در یک ستون با نام employeeNumber و اسم و فامیل کارمندان را با یک space به هم بچسبانید و در یک ستون با نام Name و تعداد مشتری‌های آن کارمند را در یک ستون با نام CustomersCount قرار دهید و به ترتیب نزولی بر اساس تعداد مشتریان مرتب کنید. اگر تعداد مشتریان دو کارمند یکسان بود، آن سطرها را به‌ترتیب صعودی شناسه‌ی کارمند مرتب کنید.
  2. رتبه‌بندی سفارش‌ها براساس هر مشتری: شناسه‌ی ۵ مشتری‌ای که مجموع مبلغ سفارش‌های‌شان بیشتر از بقیه است را به‌ترتیب نزولی مجموع مبلغ سفارش‌ها در یک ستون با نام customerNumber برگردانید. تضمین می‌شود که مجموع مبالغ سفارش‌های این مشتریان با یکدیگر متفاوت است.
  3. رتبه‌بندی کالاها بر اساس ارزش‌شان (سود خالص) در خط تولیدشان: در ستون اول با نام productline شناسه خط تولید بیاید و در ستون دوم، نام کالا در ستونی با نام productName بیاید و در ستون سوم (با نام net_profit) سود خالصی که کالا می‌دهد یعنی «قیمت فروش منهای قیمت خرید»، تعداد موجود در انبار را در ستونی با نام quantityInStock بریزید و در ستون آخر با نام net_profit_rank، رتبه‌ی هر محصول بر اساس ارزشش در هر خط تولید را بریزید. رتبه‌ی محصولات به گونه‌ای باشد که محصولی که ارزشش بیشتر است، عدد رتبه‌اش کمتر باشد. تضمین می‌شود که سود خالص محصولات با یکدیگر متفاوت است. سطرهای خروجی باید به‌ترتیب صعودی شناسه‌ی محصول باشند.

نکته: برای بخش سوم دقت کنید که حتما productlineها در هر دو جدول productline و products موجود باشد.

آن‌چه باید آپلود کنید🔗

کد خود را در حتما در قالب زیر، در یک فایل با پسوند .sql قرار دهید و بدون زیپ کردن، آن را ارسال کنید:

-- Section1
   Your first query here
-- Section2
   Your second query here
-- Section3
   Your third query here
SQL
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.