Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- 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,
- device_location GEOGRAPHY, -- Nowa kolumna przechowująca współrzędne geograficzne urządzenia
- device_location_geom GEOMETRY, -- Nowa kolumna przechowująca współrzędne geometryczne urządzenia
- device_hierarchy HIERARCHYID, -- Nowa kolumna przechowująca hierarchię urządzeń
- device_description XML -- Nowa kolumna opisująca urządzenia
- );
- -- Tworzenie zmiennych dla współrzędnych geograficznych i geometrycznych
- DECLARE @latitude DECIMAL(9, 6), @longitude DECIMAL(9, 6);
- DECLARE @point GEOMETRY;
- DECLARE @hierarchy HIERARCHYID;
- DECLARE @device_description XML;
- -- Pętla wypełniająca tabelę
- DECLARE @i INT = 1;
- WHILE @i <= 50
- BEGIN
- -- Generowanie losowych danych dla każdej kolumny
- SET @latitude = RAND() * 180 - 90;
- SET @longitude = RAND() * 360 - 180;
- SET @point = GEOMETRY::Point(@latitude, @longitude, 4326);
- SET @hierarchy = HIERARCHYID::GetRoot();
- SET @device_description = '<description>Device ' + CAST(@i AS NVARCHAR(5)) + '</description>';
- -- Wstawianie danych do tabeli
- INSERT INTO Renewable_Energy_Devices (device_id, device_status, device_power, company_id, device_location, device_location_geom, device_hierarchy, device_description)
- VALUES (
- 'Device_' + CAST(@i AS NVARCHAR(5)), -- device_id
- CAST(RAND() * 6 AS INT), -- device_status
- CAST(RAND() * 1000 AS DECIMAL(18, 0)), -- device_power
- CAST(RAND() * 10 AS INT) + 1, -- company_id
- GEOGRAPHY::Point(@latitude, @longitude, 4326), -- device_location
- @point, -- device_location_geom
- @hierarchy.GetDescendant(NULL, NULL), -- device_hierarchy
- @device_description -- device_description
- );
- SET @i = @i + 1;
- END;
- -- 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
- -- Zmienna do przechowywania liczby zgłoszeń awarii
- DECLARE @numFailures INT = 50;
- -- Pętla wstawiająca przykładowe zgłoszenia awarii
- DECLARE @j INT = 1;
- WHILE @j <= @numFailures
- BEGIN
- -- Losowanie daty początkowej i końcowej awarii w zakresie ostatniego miesiąca
- DECLARE @startDate DATETIME = DATEADD(DAY, -RAND()*30, GETDATE());
- DECLARE @endDate DATETIME = DATEADD(HOUR, RAND()*24, @startDate);
- -- Losowanie numeru zmiany
- DECLARE @shiftNumber INT = ROUND(RAND() * 2 + 1, 0, 0);
- -- Losowanie ID urządzenia
- DECLARE @deviceID NVARCHAR(26) = 'Device_' + CAST(ROUND(RAND()*50 + 1, 0, 0) AS NVARCHAR(2));
- -- Wstawienie danych do tabeli zgłoszeń awarii
- INSERT INTO Device_Failures (device_id, shift_number, failure_start, failure_end)
- VALUES (@deviceID, @shiftNumber, @startDate, @endDate);
- -- Inkrementacja licznika
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement