SHOW:
|
|
- or go back to the newest paste.
1 | -- Tworzenie tabeli urządzeń OZE | |
2 | ||
3 | CREATE TABLE Renewable_Energy_Devices ( | |
4 | device_id NVARCHAR(26) PRIMARY KEY, | |
5 | device_status INT CHECK (device_status >= 0 AND device_status <= 6), | |
6 | - | device_power DECIMAL(18,0) |
6 | + | device_power DECIMAL(18,0), |
7 | company_id INT | |
8 | ); | |
9 | ||
10 | - | INSERT INTO Renewable_Energy_Devices (device_id, device_status, device_power) |
10 | + | |
11 | INSERT INTO Renewable_Energy_Devices (device_id, device_status, device_power, company_id) | |
12 | - | ('00000000000000000000000000',0, 1000), |
12 | + | |
13 | - | ('00000000000000000000000001',0, 1000), |
13 | + | ('00000000000000000000000000',0, 1000,1), |
14 | - | ('00000000000000000000000002',0, 1000), |
14 | + | ('00000000000000000000000001',0, 1000,1), |
15 | - | ('00000000000000000000000003',0, 2000), |
15 | + | ('00000000000000000000000002',0, 1000,1), |
16 | - | ('00000000000000000000000004',0, 1000), |
16 | + | ('00000000000000000000000003',0, 2000,1), |
17 | - | ('00000000000000000000000005',0, 1000), |
17 | + | ('00000000000000000000000004',0, 1000,1), |
18 | - | ('00000000000000000000000006',0, 1000), |
18 | + | ('00000000000000000000000005',0, 1000,1), |
19 | - | ('00000000000000000000000007',3, 1000), |
19 | + | ('00000000000000000000000006',0, 1000,1), |
20 | - | ('00000000000000000000000008',0, 5000), |
20 | + | ('00000000000000000000000007',3, 1000,1), |
21 | - | ('00000000000000000000000009',0, 1000), |
21 | + | ('00000000000000000000000008',0, 5000,1), |
22 | - | ('00000000000000000000000010',0, 1000), |
22 | + | ('00000000000000000000000009',0, 1000,1), |
23 | - | ('00000000000000000000000011',0, 1000), |
23 | + | ('00000000000000000000000010',0, 1000,1), |
24 | - | ('00000000000000000000000012',0, 1000), |
24 | + | ('00000000000000000000000011',0, 1000,1), |
25 | - | ('00000000000000000000000013',0, 1000), |
25 | + | ('00000000000000000000000012',0, 1000,1), |
26 | - | ('00000000000000000000000014',0, 1000), |
26 | + | ('00000000000000000000000013',0, 1000,1), |
27 | - | ('00000000000000000000000015',2, 4000), |
27 | + | ('00000000000000000000000014',0, 1000,1), |
28 | - | ('00000000000000000000000016',1, 1000), |
28 | + | ('00000000000000000000000015',2, 4000,1), |
29 | - | ('00000000000000000000000017',0, 1000), |
29 | + | ('00000000000000000000000016',1, 1000,1), |
30 | - | ('00000000000000000000000018',0, 1000), |
30 | + | ('00000000000000000000000017',0, 1000,1), |
31 | - | ('00000000000000000000000019',0, 1000), |
31 | + | ('00000000000000000000000018',0, 1000,1), |
32 | - | ('00000000000000000000000020',0, 7000), |
32 | + | ('00000000000000000000000019',0, 1000,1), |
33 | - | ('00000000000000000000000021',0, 1000), |
33 | + | ('00000000000000000000000020',0, 7000,1), |
34 | - | ('00000000000000000000000022',0, 1000), |
34 | + | ('00000000000000000000000021',0, 1000,1), |
35 | - | ('00000000000000000000000023',0, 1000), |
35 | + | ('00000000000000000000000022',0, 1000,1), |
36 | - | ('00000000000000000000000024',0, 1000), |
36 | + | ('00000000000000000000000023',0, 1000,1), |
37 | - | ('00000000000000000000000025',0, 1000), |
37 | + | ('00000000000000000000000024',0, 1000,1), |
38 | - | ('00000000000000000000000026',0, 1000), |
38 | + | ('00000000000000000000000025',0, 1000,1), |
39 | - | ('00000000000000000000000027',0, 1000), |
39 | + | ('00000000000000000000000026',0, 1000,1), |
40 | - | ('00000000000000000000000028',0, 1000), |
40 | + | ('00000000000000000000000027',0, 1000,1), |
41 | - | ('00000000000000000000000029',0, 1000), |
41 | + | ('00000000000000000000000028',0, 1000,1), |
42 | - | ('00000000000000000000000030',0, 1000), |
42 | + | ('00000000000000000000000029',0, 1000,1), |
43 | - | ('00000000000000000000000031',0, 8000), |
43 | + | ('00000000000000000000000030',0, 1000,1), |
44 | - | ('00000000000000000000000032',0, 1000), |
44 | + | ('00000000000000000000000031',0, 8000,1), |
45 | - | ('00000000000000000000000033',0, 1000), |
45 | + | ('00000000000000000000000032',0, 1000,1), |
46 | - | ('00000000000000000000000034',0, 1000), |
46 | + | ('00000000000000000000000033',0, 1000,1), |
47 | - | ('00000000000000000000000035',0, 1000), |
47 | + | ('00000000000000000000000034',0, 1000,1), |
48 | - | ('00000000000000000000000036',0, 1000), |
48 | + | ('00000000000000000000000035',0, 1000,1), |
49 | - | ('00000000000000000000000037',0, 1000), |
49 | + | ('00000000000000000000000036',0, 1000,1), |
50 | - | ('00000000000000000000000038',0, 1000), |
50 | + | ('00000000000000000000000037',0, 1000,1), |
51 | - | ('00000000000000000000000039',0, 1000), |
51 | + | ('00000000000000000000000038',0, 1000,1), |
52 | - | ('00000000000000000000000040',0, 1000), |
52 | + | ('00000000000000000000000039',0, 1000,1), |
53 | - | ('00000000000000000000000041',0, 1000), |
53 | + | ('00000000000000000000000040',0, 1000,1), |
54 | - | ('00000000000000000000000042',0, 1000), |
54 | + | ('00000000000000000000000041',0, 1000,1), |
55 | - | ('00000000000000000000000043',0, 1000), |
55 | + | ('00000000000000000000000042',0, 1000,1), |
56 | - | ('00000000000000000000000044',0, 1000), |
56 | + | ('00000000000000000000000043',0, 1000,1), |
57 | - | ('00000000000000000000000045',0, 1000), |
57 | + | ('00000000000000000000000044',0, 1000,1), |
58 | - | ('00000000000000000000000046',0, 9000), |
58 | + | ('00000000000000000000000045',0, 1000,1), |
59 | - | ('00000000000000000000000047',0, 1000), |
59 | + | ('00000000000000000000000046',0, 9000,1), |
60 | - | ('00000000000000000000000048',0, 1000), |
60 | + | ('00000000000000000000000047',0, 1000,1), |
61 | - | ('00000000000000000000000049',0, 1000), |
61 | + | ('00000000000000000000000048',0, 1000,1), |
62 | - | ('00000000000000000000000050',3, 7000); |
62 | + | ('00000000000000000000000049',0, 1000,1), |
63 | ('00000000000000000000000050',3, 7000,1); | |
64 | ||
65 | ||
66 | -- Tworzenie tabeli zgłoszeń awarii | |
67 | ||
68 | CREATE TABLE Device_Failures ( | |
69 | failure_id INT PRIMARY KEY IDENTITY, | |
70 | device_id NVARCHAR(26), | |
71 | shift_number INT, | |
72 | failure_start DATETIME, | |
73 | failure_end DATETIME, | |
74 | FOREIGN KEY (device_id) REFERENCES Renewable_Energy_Devices(device_id) | |
75 | ); | |
76 | ||
77 | -- Wstawianie danych do tabeli zgłoszeń awarii | |
78 | ||
79 | DECLARE @i INT = 0 | |
80 | WHILE @i <= 9 | |
81 | BEGIN | |
82 | INSERT INTO Device_Failures (device_id, shift_number, failure_start, failure_end) | |
83 | VALUES (CONCAT('0000000000000000000000000', @i), round(rand() * 2 + 1,0,0), DATEADD(DAY, -@i, GETDATE()), DATEADD(DAY, -@i+1, GETDATE())); | |
84 | SET @i = @i + 1 | |
85 | END | |
86 | ||
87 | DECLARE @i INT = 10 | |
88 | WHILE @i <= 50 | |
89 | BEGIN | |
90 | INSERT INTO Device_Failures (device_id, shift_number, failure_start, failure_end) | |
91 | VALUES (CONCAT('000000000000000000000000', @i), round(rand() * 2 + 1,0,0), DATEADD(DAY, -@i, GETDATE()), DATEADD(DAY, -@i+1, GETDATE())); | |
92 | SET @i = @i + 1 | |
93 | END | |
94 | ||
95 | ||
96 | -- Tworzenie tabeli klientów | |
97 | ||
98 | CREATE TABLE Customers ( | |
99 | customer_id INT PRIMARY KEY, | |
100 | name VARCHAR(255), | |
101 | email VARCHAR(255), | |
102 | phone VARCHAR(20), | |
103 | address VARCHAR(255) | |
104 | ); | |
105 | ||
106 | -- Wstawianie danych do tabeli klientów | |
107 | INSERT INTO Customers (customer_id, name, email, phone, address) | |
108 | VALUES | |
109 | (1, 'John Doe', '[email protected]', '123456789', '123 Main St'), | |
110 | (2, 'Jane Smith', '[email protected]', '987654321', '456 Elm St'), | |
111 | (3, 'Michael Johnson', '[email protected]', '555123456', '789 Oak St'), | |
112 | (4, 'Emily Brown', '[email protected]', '444987654', '321 Pine St'), | |
113 | (5, 'William Wilson', '[email protected]', '789456123', '654 Birch St'), | |
114 | (6, 'Olivia Taylor', '[email protected]', '987123456', '987 Maple St'), | |
115 | (7, 'James Martinez', '[email protected]', '321654987', '159 Cedar St'), | |
116 | (8, 'Emma Anderson', '[email protected]', '666333999', '753 Walnut St'), | |
117 | (9, 'Noah Thomas', '[email protected]', '222333444', '852 Spruce St'), | |
118 | (10, 'Ava Hernandez', '[email protected]', '111222333', '369 Cherry St'), | |
119 | (11, 'Sophia Lopez', '[email protected]', '777888999', '741 Elm St'), | |
120 | (12, 'Matthew Gonzalez', '[email protected]', '222111333', '258 Oak St'), | |
121 | (13, 'Isabella Perez', '[email protected]', '666777888', '951 Pine St'), | |
122 | (14, 'Jacob Robinson', '[email protected]', '999888777', '753 Maple St'), | |
123 | (15, 'Ethan Lee', '[email protected]', '111222333', '852 Cedar St'), | |
124 | (16, 'Oliver Walker', '[email protected]', '444555666', '963 Walnut St'), | |
125 | (17, 'Daniel Hall', '[email protected]', '888777666', '357 Birch St'), | |
126 | (18, 'Liam Young', '[email protected]', '999888777', '159 Spruce St'), | |
127 | (19, 'Charlotte Hernandez', '[email protected]', '333222111', '456 Cherry St'), | |
128 | (20, 'Amelia Moore', '[email protected]', '222333444', '789 Elm St'), | |
129 | (21, 'Benjamin Nelson', '[email protected]', '444555666', '357 Pine St'), | |
130 | (22, 'Lucas Hill', '[email protected]', '111222333', '852 Maple St'), | |
131 | (23, 'Mia King', '[email protected]', '555666777', '963 Cedar St'), | |
132 | (24, 'Harper Baker', '[email protected]', '777888999', '357 Walnut St'), | |
133 | (25, 'Evelyn Adams', '[email protected]', '999888777', '456 Birch St'); | |
134 | ||
135 | INSERT INTO Customers (customer_id, name, email, phone, address) | |
136 | VALUES (26, 'John Doe', '[email protected]', '123456789', '556 Main St'), | |
137 | (27, 'Jane Smith', '[email protected]', '987654321', '431 Elm St'); | |
138 | ||
139 | ||
140 | -- Tworzenie tabeli zamówień | |
141 | ||
142 | CREATE TABLE Customers_Orders ( | |
143 | customer_order_id INT PRIMARY KEY, | |
144 | customer_id INT, | |
145 | customer_order_date_start DATETIME, | |
146 | - | working_hours VARCHAR(255) -- Można to dostosować w zależności od potrzeb |
146 | + | customer_order_date_end DATETIME, |
147 | customer_order_amount_of_energy DECIMAL(18,0), | |
148 | FOREIGN KEY (customer_id) REFERENCES Customers(customer_id) | |
149 | ); | |
150 | ||
151 | -- Wstawianie danych do tabeli zamówień | |
152 | ||
153 | INSERT INTO Customers_Orders (customer_order_id, customer_id, customer_order_date_start, customer_order_date_end, customer_order_amount_of_energy) | |
154 | VALUES | |
155 | (1, 1, '2024-04-01 08:00:00', '2024-04-01 12:00:00', 100), | |
156 | (2, 1, '2024-04-02 10:00:00', '2024-04-02 14:00:00', 120), | |
157 | (3, 2, '2024-04-03 12:00:00', '2024-04-03 16:00:00', 150), | |
158 | (4, 2, '2024-04-04 09:00:00', '2024-04-04 13:00:00', 130), | |
159 | (5, 3, '2024-04-05 11:00:00', '2024-04-05 15:00:00', 110), | |
160 | (6, 3, '2024-04-06 08:00:00', '2024-04-06 12:00:00', 140), | |
161 | (7, 4, '2024-04-07 10:00:00', '2024-04-07 14:00:00', 125), | |
162 | (8, 4, '2024-04-08 12:00:00', '2024-04-08 16:00:00', 105), | |
163 | (9, 5, '2024-04-09 07:00:00', '2024-04-09 11:00:00', 115), | |
164 | (10, 5, '2024-04-10 11:00:00', '2024-04-10 15:00:00', 135), | |
165 | (11, 6, '2024-04-11 09:00:00', '2024-04-11 13:00:00', 155), | |
166 | (12, 6, '2024-04-12 08:00:00', '2024-04-12 12:00:00', 125), | |
167 | (13, 7, '2024-04-13 10:00:00', '2024-04-13 14:00:00', 145), | |
168 | (14, 7, '2024-04-14 11:00:00', '2024-04-14 15:00:00', 120), | |
169 | (15, 8, '2024-04-15 12:00:00', '2024-04-15 16:00:00', 130), | |
170 | (16, 8, '2024-04-16 08:00:00', '2024-04-16 12:00:00', 110), | |
171 | (17, 9, '2024-04-17 09:00:00', '2024-04-17 13:00:00', 140), | |
172 | (18, 9, '2024-04-18 10:00:00', '2024-04-18 14:00:00', 150), | |
173 | (19, 10, '2024-04-19 08:00:00', '2024-04-19 12:00:00', 120), | |
174 | (20, 10, '2024-04-20 11:00:00', '2024-04-20 15:00:00', 130), | |
175 | (21, 11, '2024-04-21 10:00:00', '2024-04-21 14:00:00', 140), | |
176 | (22, 11, '2024-04-22 12:00:00', '2024-04-22 16:00:00', 160), | |
177 | (23, 12, '2024-04-23 09:00:00', '2024-04-23 13:00:00', 125), | |
178 | (24, 12, '2024-04-24 07:00:00', '2024-04-24 11:00:00', 135), | |
179 | (25, 13, '2024-04-25 11:00:00', '2024-04-25 15:00:00', 115), | |
180 | (26, 13, '2024-04-26 12:00:00', '2024-04-26 16:00:00', 105), | |
181 | (27, 14, '2024-04-27 10:00:00', '2024-04-27 14:00:00', 145), | |
182 | (28, 14, '2024-04-28 08:00:00', '2024-04-28 12:00:00', 125), | |
183 | (29, 15, '2024-04-29 11:00:00', '2024-04-29 15:00:00', 135), | |
184 | (30, 15, '2024-04-30 09:00:00', '2024-04-30 13:00:00', 155), | |
185 | (31, 16, '2024-05-01 08:00:00', '2024-05-01 12:00:00', 125), | |
186 | (32, 16, '2024-05-02 10:00:00', '2024-05-02 14:00:00', 145), | |
187 | (33, 17, '2024-05-03 12:00:00', '2024-05-03 16:00:00', 130), | |
188 | (34, 17, '2024-05-04 09:00:00', '2024-05-04 13:00:00', 140), | |
189 | (35, 18, '2024-05-05 11:00:00', '2024-05-05 15:00:00', 150), | |
190 | (36, 18, '2024-05-06 08:00:00', '2024-05-06 12:00:00', 120), | |
191 | (37, 19, '2024-05-07 10:00:00', '2024-05-07 14:00:00', 110), | |
192 | (38, 19, '2024-05-08 12:00:00', '2024-05-08 16:00:00', 130), | |
193 | (39, 20, '2024-05-09 07:00:00', '2024-05-09 11:00:00', 140), | |
194 | (40, 20, '2024-05-10 11:00:00', '2024-05-10 15:00:00', 150), | |
195 | (41, 21, '2024-05-11 09:00:00', '2024-05-11 13:00:00', 125), | |
196 | (42, 21, '2024-05-12 08:00:00', '2024-05-12 12:00:00', 135), | |
197 | (43, 22, '2024-05-13 10:00:00', '2024-05-13 14:00:00', 115), | |
198 | (44, 22, '2024-05-14 11:00:00', '2024-05-14 15:00:00', 105), | |
199 | (45, 23, '2024-05-15 12:00:00', '2024-05-15 16:00:00', 145), | |
200 | (46, 23, '2024-05-16 08:00:00', '2024-05-16 12:00:00', 125), | |
201 | (47, 24, '2024-05-17 09:00:00', '2024-05-17 13:00:00', 135), | |
202 | (48, 24, '2024-05-18 10:00:00', '2024-05-18 14:00:00', 145), | |
203 | (49, 25, '2024-05-19 08:00:00', '2024-05-19 12:00:00', 155), | |
204 | (50, 25, '2024-05-20 11:00:00', '2024-05-20 15:00:00', 125); | |
205 | ||
206 | ||
207 | ||
208 | -- Tworzenie tabeli firm serwisowych | |
209 | ||
210 | CREATE TABLE Servicing_Companies ( | |
211 | company_id INT PRIMARY KEY, | |
212 | name VARCHAR(255), | |
213 | working_hours VARCHAR(255) | |
214 | ); | |
215 | ||
216 | -- Wstawianie danych do tabeli firm serwisowych | |
217 | ||
218 | INSERT INTO Servicing_Companies (company_id, name, working_hours) | |
219 | VALUES (1, 'Company Y', '6:00-14:00, 14:00-22:00, 22:00-6:00'); | |
220 | ||
221 | ||
222 | ############################ | |
223 | FOREIGN KEY (company_id) REFERENCES Servicing_Companies(company_id) | |
224 | ############################ | |
225 | ||
226 | -- Tworzenie tabeli zmian serwisowych | |
227 | ||
228 | CREATE TABLE Servicing_Shifts ( | |
229 | shift_number INT PRIMARY KEY IDENTITY, | |
230 | shift_date DATE, | |
231 | shift_type INT CHECK (shift_type >= 1 AND shift_type <= 3), | |
232 | start_time TIME, | |
233 | end_time TIME | |
234 | ); | |
235 | ||
236 | -- Wstawianie danych do tabeli zmian serwisowych (poniedziałek - sobota) | |
237 | INSERT INTO Servicing_Shifts (shift_date, shift_type, start_time, end_time) VALUES | |
238 | ('2024-04-01', 1, '06:00:00', '14:00:00'), | |
239 | ('2024-04-01', 2, '14:00:00', '22:00:00'), | |
240 | ('2024-04-01', 3, '22:00:00', '06:00:00'), | |
241 | ('2024-04-02', 1, '06:00:00', '14:00:00'), | |
242 | ('2024-04-02', 2, '14:00:00', '22:00:00'), | |
243 | ('2024-04-02', 3, '22:00:00', '06:00:00'), | |
244 | ('2024-04-03', 1, '06:00:00', '14:00:00'), | |
245 | ('2024-04-03', 2, '14:00:00', '22:00:00'), | |
246 | ('2024-04-03', 3, '22:00:00', '06:00:00'), | |
247 | ('2024-04-04', 1, '06:00:00', '14:00:00'), | |
248 | ('2024-04-04', 2, '14:00:00', '22:00:00'), | |
249 | ('2024-04-04', 3, '22:00:00', '06:00:00'), | |
250 | ('2024-04-05', 1, '06:00:00', '14:00:00'), | |
251 | ('2024-04-05', 2, '14:00:00', '22:00:00'), | |
252 | ('2024-04-05', 3, '22:00:00', '06:00:00'), | |
253 | ('2024-04-06', 1, '06:00:00', '14:00:00'), | |
254 | ('2024-04-06', 2, '14:00:00', '22:00:00'), | |
255 | ('2024-04-06', 3, '22:00:00', '06:00:00'); | |
256 | ||
257 | ||
258 | ||
259 | -- Tworzenie tabeli napraw | |
260 | ||
261 | CREATE TABLE Repairs ( | |
262 | repair_id INT PRIMARY KEY IDENTITY, | |
263 | device_id NVARCHAR(26), | |
264 | repair_start DATETIME, | |
265 | repair_end DATETIME, | |
266 | repair_description NVARCHAR(255), | |
267 | FOREIGN KEY (device_id) REFERENCES Renewable_Energy_Devices(device_id) | |
268 | ); | |
269 | ||
270 | -- Wstawianie danych do tabeli napraw (można kilka razy) | |
271 | ||
272 | DECLARE @i INT = 0 | |
273 | WHILE @i <= 9 | |
274 | BEGIN | |
275 | INSERT INTO Repairs (device_id, repair_start, repair_end, repair_description) | |
276 | VALUES (CONCAT('0000000000000000000000000', @i), DATEADD(DAY, -@i, GETDATE()), DATEADD(DAY, -@i+1, GETDATE()), 'Naprawa urządzenia'); | |
277 | SET @i = @i + 1 | |
278 | END | |
279 | ||
280 | DECLARE @i INT = 10 | |
281 | WHILE @i <= 50 | |
282 | BEGIN | |
283 | INSERT INTO Repairs (device_id, repair_start, repair_end, repair_description) | |
284 | VALUES (CONCAT('000000000000000000000000', @i), DATEADD(DAY, -@i, GETDATE()), DATEADD(DAY, -@i+1, GETDATE()), 'Naprawa urządzenia'); | |
285 | SET @i = @i + 1 | |
286 | END | |
287 | ||
288 | ||
289 | --RAPORTY ####################################################3 | |
290 | ||
291 | --Na jakiej zmianie dane urządzenie OZE uległo awarii: | |
292 | ||
293 | SELECT df.device_id, df.shift_number | |
294 | FROM Device_Failures df | |
295 | ORDER BY df.failure_start; | |
296 | ||
297 | ||
298 | --Na jakiej zmianie urządzenie OZE zostało naprawione: | |
299 | ||
300 | SELECT r.device_id, df.shift_number | |
301 | FROM Repairs r | |
302 | JOIN Device_Failures df ON r.device_id = df.device_id | |
303 | WHERE r.repair_start BETWEEN df.failure_start AND df.failure_end | |
304 | ORDER BY r.repair_start; | |
305 | ||
306 | ||
307 | --Jaki był czas przestoju danego urządzenia OZE w ciągu zadanego okresu czasu: | |
308 | ||
309 | SELECT df.device_id, SUM(DATEDIFF(HOUR, df.failure_start, df.failure_end)) AS downtime_hours | |
310 | FROM Device_Failures df | |
311 | GROUP BY df.device_id; | |
312 | ||
313 | ||
314 | --Jaki był czas przestoju danego urządzenia OZE w ciągu zadanego okresu czasu nie wliczając w to czasu kiedy firma serwisująca nie pracowała (weekendy): | |
315 | ||
316 | SELECT df.device_id, SUM(DATEDIFF(HOUR, df.failure_start, df.failure_end)) AS downtime_hours | |
317 | FROM Device_Failures df | |
318 | JOIN Servicing_Shifts ss ON df.shift_number = ss.shift_number | |
319 | WHERE DATENAME(WEEKDAY, df.failure_start) NOT IN ('Saturday', 'Sunday') | |
320 | GROUP BY df.device_id; | |
321 | ||
322 | ||
323 | --Jaki był sumaryczny czas przestoju wszystkich urządzeń OZE w ciągu zadanego okresu czasu nie wliczając w to czasu kiedy firma serwisująca nie pracowała (weekendy): | |
324 | ||
325 | SELECT SUM(downtime_hours) AS total_downtime_hours | |
326 | FROM ( | |
327 | SELECT df.device_id, SUM(DATEDIFF(HOUR, df.failure_start, df.failure_end)) AS downtime_hours | |
328 | FROM Device_Failures df | |
329 | JOIN Servicing_Shifts ss ON df.shift_number = ss.shift_number | |
330 | WHERE DATENAME(WEEKDAY, df.failure_start) NOT IN ('Saturday', 'Sunday') | |
331 | GROUP BY df.device_id | |
332 | ) AS downtime_per_device; | |
333 | ||
334 | ||
335 | ||
336 | --Jaki jest procentowy udział urządzeń OZE w poszczególnych fazach awarii w stosunku do ilości wszystkich dostępnych urządzeń OZE: | |
337 | ||
338 | WITH Device_Failure_Count AS ( | |
339 | SELECT device_id, COUNT(*) AS failure_count | |
340 | FROM Device_Failures | |
341 | GROUP BY device_id | |
342 | ) | |
343 | SELECT df.device_status, COUNT(*) AS device_count, DFC.failure_count, CAST(COUNT(*) AS DECIMAL) / DFC.failure_count * 100 AS percentage | |
344 | FROM Renewable_Energy_Devices df | |
345 | JOIN Device_Failure_Count DFC ON df.device_id = DFC.device_id | |
346 | GROUP BY df.device_status, DFC.failure_count; | |
347 | ||
348 | ||
349 | --Na ilu zmianach nie pracowało dane urządzenie OZE (wliczając to zmianę na której zgłoszono awarię i na której uruchomiono ja znów produkcyjnie): | |
350 | ||
351 | SELECT df.device_id, COUNT(DISTINCT df.shift_number) AS downtime_shifts | |
352 | FROM Device_Failures df | |
353 | JOIN Servicing_Shifts ss ON df.shift_number = ss.shift_number | |
354 | GROUP BY df.device_id; |