-- Магазиндер кестесін жасау
CREATE TABLE Stores (
StoreID INT IDENTITY(1,1) PRIMARY KEY,
StoreName VARCHAR(100) NOT NULL,
Location VARCHAR(255),
ContactNumber VARCHAR(20),
WorkingHours VARCHAR(50)
);
-- Категориялар кестесін жасау
CREATE TABLE Categories (
CategoryID INT IDENTITY(1,1) PRIMARY KEY,
CategoryName VARCHAR(100) NOT NULL
);
-- Жеткізушілер кестесін жасау
CREATE TABLE Suppliers (
SupplierID INT IDENTITY(1,1) PRIMARY KEY,
SupplierName VARCHAR(100) NOT NULL,
ContactNumber VARCHAR(20),
Location VARCHAR(255)
);
-- Тауарлар кестесін жасау
CREATE TABLE Products (
ProductID INT IDENTITY(1,1) PRIMARY KEY,
ProductName VARCHAR(100) NOT NULL,
Price DECIMAL(10, 2) NOT NULL,
StockQuantity INT NOT NULL,
CategoryID INT,
StoreID INT,
SupplierID INT,
FOREIGN KEY (CategoryID) REFERENCES Categories(CategoryID),
FOREIGN KEY (StoreID) REFERENCES Stores(StoreID),
FOREIGN KEY (SupplierID) REFERENCES Suppliers(SupplierID)
);
-- Сатып алулар кестесін жасау
CREATE TABLE Purchases (
PurchaseID INT IDENTITY(1,1) PRIMARY KEY,
ProductID INT,
Quantity INT NOT NULL,
PurchaseDate DATETIME NOT NULL,
PriceAtPurchase DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);
-- Магазиндерге деректер қосу
INSERT INTO Stores (StoreName, Location, ContactNumber, WorkingHours)
VALUES
('Tech Shop', 'Алматы, Абая даңғылы, 75', '+7 727 123 45 67', '09:00-18:00'),
('Fashion Store', 'Нұр-Сұлтан, Мәңгілік Ел, 123', '+7 717 234 56 78', '10:00-20:00'),
('Supermart', 'Алматы, Достық даңғылы, 25', '+7 727 567 89 01', '09:00-22:00');
-- Категорияларға деректер қосу
INSERT INTO Categories (CategoryName)
VALUES
('Электроника'),
('Киім'),
('Азық-түлік'),
('Техникалық құралдар'),
('Аяқ киім');
-- Жеткізушілерге деректер қосу
INSERT INTO Suppliers (SupplierName, ContactNumber, Location)
VALUES
('Samsung', '+7 701 234 56 78', 'Алматы'),
('H&M', '+7 705 678 90 12', 'Швеция'),
('Apple', '+7 701 345 67 89', 'АҚШ'),
('Sony', '+7 705 123 45 67', 'Жапония');
-- Тауарларға деректер қосу
INSERT INTO Products (ProductName, Price, StockQuantity, CategoryID, StoreID, SupplierID)
VALUES
('Ноутбук', 150000, 10, 1, 1, 1),
('Телефон', 80000, 15, 1, 1, 2),
('Көйлек', 20000, 25, 2, 2, 3),
('Шалбар', 15000, 30, 2, 2, 3),
('Телевизор', 100000, 5, 4, 1, 4),
('Спорт аяқ киім', 25000, 50, 5, 3, 2);
-- Сатып алуларға деректер қосу
INSERT INTO Purchases (ProductID, Quantity, PurchaseDate, PriceAtPurchase)
VALUES
(1, 5, '2025-04-20 14:00:00', 150000),
(2, 10, '2025-04-22 16:30:00', 80000),
(3, 15, '2025-04-23 10:00:00', 20000),
(4, 20, '2025-04-24 11:15:00', 15000),
(5, 3, '2025-04-25 13:00:00', 100000),
(6, 10, '2025-04-26 15:30:00', 25000);
-- 📌 Продукттар туралы ақпаратты баға бойынша кему ретімен сұрыптап шығару
SELECT p.ProductName, p.Price, p.StockQuantity, s.StoreName, c.CategoryName
FROM Products p
JOIN Stores s ON p.StoreID = s.StoreID
JOIN Categories c ON p.CategoryID = c.CategoryID
ORDER BY p.Price DESC; -- << Сұрыптау: ең қымбат өнімдер бірінші шығады
-- 📌 Сатып алуларды сатып алу күні бойынша сұрыптап шығару (ең соңғыдан бастап)
SELECT p.ProductName, pur.Quantity, pur.PurchaseDate, pur.PriceAtPurchase
FROM Purchases pur
JOIN Products p ON pur.ProductID = p.ProductID
ORDER BY pur.PurchaseDate DESC; -- << Сұрыптау: соңғы сатып алулар бірінші
-- Продукттар туралы ақпаратты баға бойынша кему ретімен сұрыптап шығару
SELECT p.ProductName, p.Price, p.StockQuantity, s.StoreName, c.CategoryName
FROM Products p
JOIN Stores s ON p.StoreID = s.StoreID
JOIN Categories c ON p.CategoryID = c.CategoryID
ORDER BY p.Price DESC; -- Сұрыптау: ең қымбат өнімдер бірінші шығады
-- Сатып алуларды сатып алу күні бойынша сұрыптап шығару (ең соңғыдан бастап)
SELECT p.ProductName, pur.Quantity, pur.PurchaseDate, pur.PriceAtPurchase
FROM Purchases pur
JOIN Products p ON pur.ProductID = p.ProductID
ORDER BY pur.PurchaseDate DESC; -- Сұрыптау: соңғы сатып алулар бірінші