-- Tworzenie tabeli urządzeń OZE
CREATE TABLE Renewable_Energy_Devices (
device_id NVARCHAR(26) PRIMARY KEY,
device_status INT CHECK (device_status >= 0 AND device_status <= 6),
device_power DECIMAL(18,0),
company_id INT
);
-- Wstawianie danych do tabeli urządzeń OZE
INSERT INTO Renewable_Energy_Devices (device_id, device_status, device_power, company_id)
VALUES
('00000000000000000000000000',0, 1000,1),
('00000000000000000000000001',0, 1000,1),
('00000000000000000000000002',0, 1000,1),
('00000000000000000000000003',1, 2000,1),
('00000000000000000000000004',0, 1000,1),
('00000000000000000000000005',0, 1000,1),
('00000000000000000000000006',0, 1000,1),
('00000000000000000000000007',3, 1000,1),
('00000000000000000000000008',0, 5000,1),
('00000000000000000000000009',0, 1000,1),
('00000000000000000000000010',2, 1000,1),
('00000000000000000000000011',0, 1000,1),
('00000000000000000000000012',4, 1000,1),
('00000000000000000000000013',0, 1000,1),
('00000000000000000000000014',0, 1000,1),
('00000000000000000000000015',2, 4000,1),
('00000000000000000000000016',1, 1000,1),
('00000000000000000000000017',0, 1000,1),
('00000000000000000000000018',0, 1000,1),
('00000000000000000000000019',0, 1000,1),
('00000000000000000000000020',6, 7000,1),
('00000000000000000000000021',0, 1000,1),
('00000000000000000000000022',0, 1000,1),
('00000000000000000000000023',0, 1000,1),
('00000000000000000000000024',4, 1000,1),
('00000000000000000000000025',0, 1000,1),
('00000000000000000000000026',0, 1000,1),
('00000000000000000000000027',0, 1000,1),
('00000000000000000000000028',0, 1000,1),
('00000000000000000000000029',0, 1000,1),
('00000000000000000000000030',0, 1000,1),
('00000000000000000000000031',2, 8000,1),
('00000000000000000000000032',0, 1000,1),
('00000000000000000000000033',3, 1000,1),
('00000000000000000000000034',0, 1000,1),
('00000000000000000000000035',0, 1000,1),
('00000000000000000000000036',4, 1000,1),
('00000000000000000000000037',0, 1000,1),
('00000000000000000000000038',0, 1000,1),
('00000000000000000000000039',0, 1000,1),
('00000000000000000000000040',0, 1000,1),
('00000000000000000000000041',5, 1000,1),
('00000000000000000000000042',0, 1000,1),
('00000000000000000000000043',0, 1000,1),
('00000000000000000000000044',4, 1000,1),
('00000000000000000000000045',0, 1000,1),
('00000000000000000000000046',3, 9000,1),
('00000000000000000000000047',0, 1000,1),
('00000000000000000000000048',2, 1000,1),
('00000000000000000000000049',0, 1000,1),
('00000000000000000000000050',3, 7000,1);
-- Tworzenie tabeli zgłoszeń awarii
CREATE TABLE Device_Failures (
failure_id INT PRIMARY KEY IDENTITY,
device_id NVARCHAR(26),
shift_number INT,
failure_start DATETIME,
failure_end DATETIME,
FOREIGN KEY (device_id) REFERENCES Renewable_Energy_Devices(device_id)
);
-- Wstawianie danych do tabeli zgłoszeń awarii
DECLARE @i INT = 0
WHILE @i <= 9
BEGIN
INSERT INTO Device_Failures (device_id, shift_number, failure_start, failure_end)
VALUES (CONCAT('0000000000000000000000000', @i), round(rand() * 2 + 1,0,0), DATEADD(DAY, -@i, GETDATE()), DATEADD(DAY, -@i+1, GETDATE()));
SET @i = @i + 1
END
DECLARE @j INT = 10
WHILE @j <= 50
BEGIN
INSERT INTO Device_Failures (device_id, shift_number, failure_start, failure_end)
VALUES (CONCAT('000000000000000000000000', @j), round(rand() * 2 + 1,0,0), DATEADD(DAY, -@j, GETDATE()), DATEADD(DAY, -@j+1, GETDATE()));
SET @j = @j + 1
END
-- Tworzenie tabeli klientów
CREATE TABLE Customers (
customer_id INT PRIMARY KEY,
name VARCHAR(255),
email VARCHAR(255),
phone VARCHAR(20),
address VARCHAR(255)
);
-- Wstawianie danych do tabeli klientów
INSERT INTO Customers (customer_id, name, email, phone, address)
VALUES
INSERT INTO Customers (customer_id, name, email, phone, address)
-- Tworzenie tabeli zamówień
CREATE TABLE Customers_Orders (
customer_order_id INT PRIMARY KEY,
customer_id INT,
customer_order_date_start DATETIME,
customer_order_date_end DATETIME,
customer_order_amount_of_energy DECIMAL(18,0),
FOREIGN KEY (customer_id) REFERENCES Customers(customer_id)
);
-- Wstawianie danych do tabeli zamówień
INSERT INTO Customers_Orders (customer_order_id, customer_id, customer_order_date_start, customer_order_date_end, customer_order_amount_of_energy)
VALUES
(1, 1, '2024-04-01 08:00:00', '2024-04-01 12:00:00', 100),
(2, 1, '2024-04-02 10:00:00', '2024-04-02 14:00:00', 120),
(3, 2, '2024-04-03 12:00:00', '2024-04-03 16:00:00', 150),
(4, 2, '2024-04-04 09:00:00', '2024-04-04 13:00:00', 130),
(5, 3, '2024-04-05 11:00:00', '2024-04-05 15:00:00', 110),
(6, 3, '2024-04-06 08:00:00', '2024-04-06 12:00:00', 140),
(7, 4, '2024-04-07 10:00:00', '2024-04-07 14:00:00', 125),
(8, 4, '2024-04-08 12:00:00', '2024-04-08 16:00:00', 105),
(9, 5, '2024-04-09 07:00:00', '2024-04-09 11:00:00', 115),
(10, 5, '2024-04-10 11:00:00', '2024-04-10 15:00:00', 135),
(11, 6, '2024-04-11 09:00:00', '2024-04-11 13:00:00', 155),
(12, 6, '2024-04-12 08:00:00', '2024-04-12 12:00:00', 125),
(13, 7, '2024-04-13 10:00:00', '2024-04-13 14:00:00', 145),
(14, 7, '2024-04-14 11:00:00', '2024-04-14 15:00:00', 120),
(15, 8, '2024-04-15 12:00:00', '2024-04-15 16:00:00', 130),
(16, 8, '2024-04-16 08:00:00', '2024-04-16 12:00:00', 110),
(17, 9, '2024-04-17 09:00:00', '2024-04-17 13:00:00', 140),
(18, 9, '2024-04-18 10:00:00', '2024-04-18 14:00:00', 150),
(19, 10, '2024-04-19 08:00:00', '2024-04-19 12:00:00', 120),
(20, 10, '2024-04-20 11:00:00', '2024-04-20 15:00:00', 130),
(21, 11, '2024-04-21 10:00:00', '2024-04-21 14:00:00', 140),
(22, 11, '2024-04-22 12:00:00', '2024-04-22 16:00:00', 160),
(23, 12, '2024-04-23 09:00:00', '2024-04-23 13:00:00', 125),
(24, 12, '2024-04-24 07:00:00', '2024-04-24 11:00:00', 135),
(25, 13, '2024-04-25 11:00:00', '2024-04-25 15:00:00', 115),
(26, 13, '2024-04-26 12:00:00', '2024-04-26 16:00:00', 105),
(27, 14, '2024-04-27 10:00:00', '2024-04-27 14:00:00', 145),
(28, 14, '2024-04-28 08:00:00', '2024-04-28 12:00:00', 125),
(29, 15, '2024-04-29 11:00:00', '2024-04-29 15:00:00', 135),
(30, 15, '2024-04-30 09:00:00', '2024-04-30 13:00:00', 155),
(31, 16, '2024-05-01 08:00:00', '2024-05-01 12:00:00', 125),
(32, 16, '2024-05-02 10:00:00', '2024-05-02 14:00:00', 145),
(33, 17, '2024-05-03 12:00:00', '2024-05-03 16:00:00', 130),
(34, 17, '2024-05-04 09:00:00', '2024-05-04 13:00:00', 140),
(35, 18, '2024-05-05 11:00:00', '2024-05-05 15:00:00', 150),
(36, 18, '2024-05-06 08:00:00', '2024-05-06 12:00:00', 120),
(37, 19, '2024-05-07 10:00:00', '2024-05-07 14:00:00', 110),
(38, 19, '2024-05-08 12:00:00', '2024-05-08 16:00:00', 130),
(39, 20, '2024-05-09 07:00:00', '2024-05-09 11:00:00', 140),
(40, 20, '2024-05-10 11:00:00', '2024-05-10 15:00:00', 150),
(41, 21, '2024-05-11 09:00:00', '2024-05-11 13:00:00', 125),
(42, 21, '2024-05-12 08:00:00', '2024-05-12 12:00:00', 135),
(43, 22, '2024-05-13 10:00:00', '2024-05-13 14:00:00', 115),
(44, 22, '2024-05-14 11:00:00', '2024-05-14 15:00:00', 105),
(45, 23, '2024-05-15 12:00:00', '2024-05-15 16:00:00', 145),
(46, 23, '2024-05-16 08:00:00', '2024-05-16 12:00:00', 125),
(47, 24, '2024-05-17 09:00:00', '2024-05-17 13:00:00', 135),
(48, 24, '2024-05-18 10:00:00', '2024-05-18 14:00:00', 145),
(49, 25, '2024-05-19 08:00:00', '2024-05-19 12:00:00', 155),
(50, 25, '2024-05-20 11:00:00', '2024-05-20 15:00:00', 125);
-- Tworzenie tabeli firm serwisowych
CREATE TABLE Servicing_Companies (
company_id INT PRIMARY KEY,
name VARCHAR(255),
working_hours VARCHAR(255)
);
-- Wstawianie danych do tabeli firm serwisowych
INSERT INTO Servicing_Companies (company_id, name, working_hours)
VALUES (1, 'Company Y', '6:00-14:00, 14:00-22:00, 22:00-6:00');
----------
ALTER TABLE dbo.Renewable_Energy_Devices
ADD CONSTRAINT FK_OZE_SC FOREIGN KEY (company_id) REFERENCES Servicing_Companies(company_id);
----------
-- Tworzenie tabeli zmian serwisowych
CREATE TABLE Servicing_Shifts (
shift_number INT PRIMARY KEY IDENTITY,
shift_date DATE,
shift_type INT CHECK (shift_type >= 1 AND shift_type <= 3),
start_time TIME,
end_time TIME
);
-- Wstawianie danych do tabeli zmian serwisowych (poniedziałek - sobota)
INSERT INTO Servicing_Shifts (shift_date, shift_type, start_time, end_time) VALUES
('2024-04-01', 1, '06:00:00', '14:00:00'),
('2024-04-01', 2, '14:00:00', '22:00:00'),
('2024-04-01', 3, '22:00:00', '06:00:00'),
('2024-04-02', 1, '06:00:00', '14:00:00'),
('2024-04-02', 2, '14:00:00', '22:00:00'),
('2024-04-02', 3, '22:00:00', '06:00:00'),
('2024-04-03', 1, '06:00:00', '14:00:00'),
('2024-04-03', 2, '14:00:00', '22:00:00'),
('2024-04-03', 3, '22:00:00', '06:00:00'),
('2024-04-04', 1, '06:00:00', '14:00:00'),
('2024-04-04', 2, '14:00:00', '22:00:00'),
('2024-04-04', 3, '22:00:00', '06:00:00'),
('2024-04-05', 1, '06:00:00', '14:00:00'),
('2024-04-05', 2, '14:00:00', '22:00:00'),
('2024-04-05', 3, '22:00:00', '06:00:00'),
('2024-04-06', 1, '06:00:00', '14:00:00'),
('2024-04-06', 2, '14:00:00', '22:00:00'),
('2024-04-06', 3, '22:00:00', '06:00:00');
-- Tworzenie tabeli napraw
CREATE TABLE Repairs (
repair_id INT PRIMARY KEY IDENTITY,
device_id NVARCHAR(26),
repair_start DATETIME,
repair_end DATETIME,
repair_description NVARCHAR(255),
FOREIGN KEY (device_id) REFERENCES Renewable_Energy_Devices(device_id)
);
-- Wstawianie danych do tabeli napraw (można kilka razy)
DECLARE @i INT = 0
WHILE @i <= 9
BEGIN
INSERT INTO Repairs (device_id, repair_start, repair_end, repair_description)
VALUES (CONCAT('0000000000000000000000000', @i), DATEADD(DAY, -@i, GETDATE()), DATEADD(DAY, -@i+1, GETDATE()), 'Naprawa urządzenia');
SET @i = @i + 1
END
DECLARE @j INT = 10
WHILE @j <= 50
BEGIN
INSERT INTO Repairs (device_id, repair_start, repair_end, repair_description)
VALUES (CONCAT('000000000000000000000000', @j), DATEADD(DAY, -@j, GETDATE()), DATEADD(DAY, -@j+1, GETDATE()), 'Naprawa urządzenia');
SET @j = @j + 1
END